写一个编绳接口图解,编两个类去实现编绳接口图解中的方法

博客分类:
1 JDBC概述
& JDBC(Java DataBase Connectivity)称为Java数据库连接,它是一种用于数据库访问的应用程序API,由一组用Java语言编写的类和接口组成,有了JDBC就可以用同一的语法对多种关系数据库进行访问,而不用担心其数据库操作语言的差异。换言之,有了JDBC,就不必为访问Mysql数据库专门写一个程序,为访问Oracle又专门写一个程序等等,只需用 JDBC写一个程序就够了,它可以向相应数据库发送sql语句。
&&& JDBC提供了一组类和接口用于对数据库的访问,用JDBC访问数据库基本要经历一下几个步骤
1 于数据库建立连接
2 执行sql语句以便对数据库进行各种操作,返回操作数据库的结果
3 关闭数据库连接
&&& JDBC API既支持数据库访问的两层模型,也支持三层模型
&&& 在两层模型中,Java API或应用程序直接与数据库进行对话,这将需要一个JDBC驱动程序来与所访问的特定数据库管理系统进行通信,用户的SQL语句被送往数据库,而其结果将被送回给用户。
&&& 在三层模型中,命令首先是发送到服务的中间价,然后由它将sql语句发送给数据库,数据库对sql语句进行处理并将结果送回到中间件,中间件再将结果发送给用户。
&&& Java操作数据库都是通过JDBC来实现的,而JDBC的一个很大的优点在于实现了接口的统一,也就是说与数据库的无关性,但在具体运用中,往往由于数据库的不同需要去修改数据库的链接代码。
针对不同的数据库,具体的JDBC驱动包是不一样的,所以在使用不听的数据库时,需要对好入入座。
2& JDBC的常用接口和类
&&& JDBC是一个规范,遵循JDBC几口规范,各个数据库厂家各自实现自己的驱动程序,应用在获取数据库连接时,需要以URL 的方式制定是那种类型的驱动,在或得特定的链接之后,可按照固定的接口操作不同类型的数据库
&&& 在JDBC中提供了四个类进行数据库管理的操作
(1) DriverManager类用来装载驱动程序,它所有的成员都是静态成员,所以在程序中无须对它进行实例化,直接通过类名就可以访问.DriverManager是JDBC 的管理层,作用于用户和驱动程序间加载驱动程序,DriverManager类跟踪可用的驱动程序,并在数据库和相应的驱动程序之间建立连接
&&& 当DriverManager调用getConnection()方法来建立于数据库的链接时,DriverManager类首先从它已加载的驱动程序池中找到一个可以接受该数据库URL的驱动程序,然后请求该驱动程序使用相关的数据库URL去连接数据库。
&&& 通过调用方法Class.forName(),将显式的加载驱动程序类。forName的参数应该是 “公司名.数据库名.驱动程序名”
&&&&& 当调用DriverManager.getConnection()发出连接请求时,DriverManager将检查每一个驱动程序,看它是否可以建立连接
Connection getConnection(String url.String usr,String password)
url表示指向数据库的URL它的大致格式如下,jdbc:(subprotocol):(subname)
其中subprotrol表示子协议,制定连接何种数据库或使用什么方式连接数据库,subname表示确定一个连接,可以使一个数据源名,也可以指向一个网上的数据库
(2)Connection类
Connection 类是指向一个数据库的连接,作用是管理指向数据库的连接,连接过程中包含所执行的sql语句和在该链接上返回的结果,一个应用程序可以与单个数据库有一个或多个连接,也可以与许多数据库有链接。在完成同数据库连接的所有任务之后关闭该链接
常用的方法有
(1)close().用于关闭和数据库的链接,当一个Connection使用后,并没有被关闭,系统会将此连接保留一段时间,知道超时。使用方法如下
conn.close()
(2)isClosed()判断一个连接是否已经关闭,返回一个布尔值,关闭时返回true。反之
(3)commit()。提交对数据库的更改,使其生效,只有在禁止自动提交时,(setAutoCommit(false))需要使用这个方法,否则对数据库的更改会自动提交到数据库。
(4)getAutoCommit().检测该链接是否处于自动提交状态,自动状态时为true反之false
(5)isReadOnly()检测该链接是否是只读状态,返回一个布尔值。
(6)setAutoCommit()设置操作是否自动提交到数据库,默认情况是true,即新建的链接处于自动提交模式。
(7)setReadOnly可以把一个连接设置为只读
(8)createStatement .用于创建一个Statement,Statement用于执行SQL语句,使用方法
Statement stm=conn.createStatement();
createStatement()还可以带一些参数
如 Statement stm=conn.createStatement(type,concurrency);
其中type有以下几种情况
ResultSet.TYPE_FORWARD_ONLY,表示结果集记录指针只能向前移动
ResultSet.TYPE_SCROLL_INSENSITIVE表示结果集可以向前后移动,但数据库内容发生变化时结果集不变。
ResultSet.TYPE_SCROLL_SENTIVITY表示结果集可以前后移动,但数据库内容发生变化时结果集同步改变
参数concurrency决定是否可以用结果集更新
ResultSet.CONCUR_READ_ONLY,表示结果集只读,不能跟新数据表中的数据
ResultSet.CONCUR_UPDATE,表示是否可以通过结果集跟新数据库数据
(9)prepareCall(String sql)创建一个CallableStatement用于执行存储过程、
(10)prepareStatement()一条带有或不带IN
参数的sql语句可以被预编译并存放在PrepareStatement对象中,该对象用于有效的多次执行该语句。
(11)rollback。回滚当前的操作,并释放当前连接保存的任何数据锁,只有在禁止自动提交后才能使用该方法
3.Statement类
Java.sql.Statement用于在基层连接上运行sql语句,并且访问结果。Connection接口提供了生成Statement的方法,一般情况下通过connection.createStatement方法就可以得到Statement对象的实例
在使用中有三种Statment对象,分别是Statement,PrepareStatement和CallableStatement.
Statement对象用于执行不带参数的基本的sql语句,他的典型使用
Connection conn=DriverManager.getConnection(……);
Statement stm=conn.createStatement();
ResultSet rs=stm.executeQuery("sql");
……
PrepareStatement对象是从Statement继承过来的。用于执行带或不带IN参数的预编译的SQL语句,它的典型使用是
Connection conn=DriverManager.getConnection("url");
PrepareStatement pstm=conn.prepareStatement(" insert into person values(?,?,?,?)");
pstm.setInt(1,1);
pstm.setString(2,"twm");
pstm.setString(3,"boy");
pstm.setInt(4,25);
pstm.executeUpdate();
…………
CallableStatement对象是PrepareStatement继承过来的用于执行对数据库存储过程的调用
Statement对像还提供许多方法,其中常用的方法有
(1)execute().运行sql语句,返回一个是否有结果集的布尔值,使用方法如下
stm.execute(String sql);
其中参数是一条sql语句
(2)executeQuery()执行一条返回ResultSet的sql语句,返回值室友查询产生的数据集合,使用方法如下
stm.executeQuery(String sql);
其中sql是静态的select语句
(3)executeUpdate(),执行INSERT.UPDATE.DELETE或一条没有返回数据集的sql语句,
该方法返回影星语句的条数,
executeUpdate(String sql);
(4)cancel()用于一个线程取消令一个线程正在执行的语句使用方法如下
stm.cancel();
(5)getResultSet()用于得到当前ResultSet的结果
stm.getResultSet();
4 ResultSet类
在Statement执行sql语句时,有时候会返回ResultSet结果集,ResultSet往往包含的是查询的结果集,并可以通过它的不同的方法提取出查询结果
此接口抽象了运行select语句的结果,提供了逐行访问结果的方法,通过他可以访问结果的不同字段,它通过next()方法将当前的指针向前移动一行,最初指针位于第一行之前,因此第一次条用next()方法,把指针置于第一行上,使他成为当前行,随着每次调用next()依次获得ResultSet行
liujinpan75
浏览: 640111 次
来自: 上海
去掉 UUID字符串中的“-” 直接replaceAll(&q ...
Thinking inJava我读着好像说要建立基类对象啊!请 ...
getFullYear
我觉得楼上的synchronized(this),notify ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'C#实现两接口中同名方法实例分析
作者:jayqean
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了C#实现两接口中同名方法,涉及C#接口与方法的相关操作技巧,需要的朋友可以参考下
本文实例讲述了C#实现两接口中同名方法。分享给大家供大家参考。具体分析如下:
对于一个类实现两个接口,而这两个接口又有同名方法,C#中的处理方式如下:
using System.Collections.G
using System.T
namespace Super
class Program
static void Main(string[] args)
SuperMan sm = new SuperMan();
sm.NightWork();
((IMoster)sm).Create();
sm.DayWord();
((IPerson)sm).Create();
//妖的接口
interface IMoster
void NightWork();//晚上工作的方法
void Create();//晚上生育的方法
//人的接口
interface IPerson
void DayWord();//白天工作的方法
void Create();//白天生育的方法
//超人 实现妖和人 两接口
class SuperMan : IMoster, IPerson
#region IMoster 成员
public void NightWork()
Console.WriteLine("晚上工作");
void IMoster.Create()
Console.WriteLine("晚上生妖");
#endregion
#region IPerson 成员
public void DayWord()
Console.WriteLine("白天工作");
void IPerson.Create()
Console.WriteLine("白天生人");
#endregion
希望本文所述对大家的C#程序设计有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具java接口应用
我的图书馆
java接口应用
Java语言提供了一种接口(interface)机制。这种接口机制使Java的面向对象编程变得更加灵活。我们可以用接口来定义一个类的表现形式,但接口不能包含任何实现。在《Thinking&in&Java》一书中,作者对接口有这样的描述:“接口(interface)比抽象(abstract)的概念更进了一步。你可以把一个接口看成是一个纯的抽象类。”我认为作者对接口的这一解释再准确不过了。理解并用好接口机制将帮助我们更好的掌握Java这种面向对象的编程语言。下面我们来讨论一下接口的使用规则以及相关的应用。一、接口的定义及实现  &定义接口和定义类相似,只是要把&class关键字换为&interface。定义方法时只需要方法名,返回类型和参数列表,不能有方法体。接口中可以定义字段,这些字段都被暗指为&static&和&final,因此应该根据需要先定好这些字段的值。例如:public&interface&Flyable&{&&void&fly();}public&interface&Talkable&{&&void&talk();}public&interface&Message&{&&int&MAX_SIZE&=&4096;&&String&getMessage();}  上面定义的几个接口中,Flyable&和&Talkable&只定义了一个方法,而&Message&里除了方法外还有一个字段&MAX_SIZE。可以看出这些接口只定义了类的表现形式,而不包含任何实现,所以不能直接使用。要使用这些接口就需要有相应的类去实现它们。实现接口时应该先在类名后用&implements&关键字申明将要实现的接口,如果要实现多个接口,应该用逗号将它们隔开,然后一一实现这些接口中定义的方法。如下面的例子:public&class&Parrot&implements&Flyable,&Talkable&{&&public&void&fly()&{&&&&System.out.println("Flying&like&a&parrot…");&&}&&public&void&talk()&{&&&&System.out.println("Hello!&I&am&a&parrot!");&&}}public&class&TextMessage&implements&Message&{&&String&&&public&void&setMessage(String&msg)&{&&&&message&=&&&&&if&(message.length()&&&MAX_SIZE)&&&&message&=&message.substring(0,&MAX_SIZE);&&}&&public&String&getMessage()&{&&&&return&&&}}  在&Parrot(鹦鹉)例子中,我们用接口&Flyable&来表示飞行能力,Talkable&表示说话能力,但它们并不包含具体实现。而&Parrot&同时具有这两种能力,所以我们为&Parrot&类同时实现了&Flyable&和&Talkable&这两个接口。同样我们还可以定义一个Swallow(燕子)类,但燕子只有飞行能力,所以我们只需要为&Swallow&实现&Flyable&就行了。因为它们各自的的飞行方法有所不同,所以它们有各自关于飞行的具体实现。  另外,正因为一个类可以同时实现多个接口,使得Java的面向对象特性变得非常灵活。运用这种特性,我们可以实现类似C++语言中多继承那样的特性,甚至更灵活的一些特性。下面我们来讨论一下接口在实际中的应用。二、用接口来定义一些全局变量  &因为接口内的字段都是static和final的,所以我们可以很方便的利用这一点来创建一些常量。例如:public&interface&Constants&{&&String&ROOT&=&"/root";&&int&MAX_COUNT&=&200;&&int&MIN_COUNT&=&100;}  在使用时可以直接用Constants.ROOT这样的形式来引用其中的常量。我们还可以用下面这种方法来创建初始值不确定的常量。public&interface&RandomColor&{&&int&red&=&Math.random()&*&255;&&int&green&=&Math.random()&*&255;&&int&blue&=&Math.random()&*&255;}  其中red、green和blue的值会在第一次被访问时建立,然后保持不变。三、用接口来定义基本数据结构  在设计一套软件系统的初期,我们可以用接口来对一些基本数据元素的特性来进行一些描述,再根据需要进行不同的实现。请大家看看下面这个例子:public&interface&User&{&&int&getAge();&&String&getName();&&String&getPassword();}public&class&XMLUser&implements&User&{&&//&这里用XML技术实现User接口中的方法&&public&int&getAge()&{&...&}&&public&String&getName()&{&...&}&&public&String&getPassword()&{&...&}}public&abstract&class&UserFactory&{&&public&static&UserFactory&getUserFactory()&{&&&&return&new&XMLUserFactory();&&}&&public&User&getUser(String&name);&&public&User&getAdmin();&&public&User&createUser(String&name,&String&password,&int&age);&&public&void&addUser(User&user);&&public&void&delUser(User&user);}public&class&XMLUserFactory&extends&UserFactory&{&&//&这里用XML技术实现的UserFactory的抽象方法}  在这个例子中,我们定义了一个接口User和一个抽象类UserFactory。然后我们用XML技术实现这两个类。可以看出,我们只需要从用UserFactory的getUserFactory()就可以得到一个UserFactory的实例,而不用去考虑这个实例的具体实现方法。通过UserFactory的这个实例我们还可以直接得到User的实例,也不用去考具体的实现方法。  如果我们决定用JDBC技术来实现User和UserFactory,我们只需要按上面的形式实现JDBCUser和JDBCUserFactory就行了。然后把UserFactory中的getUserFactory方法修改一下就可以改变了它们的实现方法。而我们已经写好的调用UserFactory和User的部分不需要做任何修改。  这是用接口来定义数据结构的一个简单的例子,在实际应用中还有很多灵活的使用方法,大家需要在学习过程中不断的去体会。四、理解分布式应用的原理  目前有很多软件项目都使用了分布式的技术。Java&有多种支持分布式应用的技术,早期用的比较多的有&RMI、CORBA&等技术,而现在&EJB&技术更为流行一些。但这些技术不管怎么发展,其实都是以接口为基础的。  以远程方法调用&RMI(Remote&Method&Invocation)为例。在编写&RMI&应用时,我们需要做两件最基本的事,首先要定义一个接口,这个接口要继承&java.rmi.Remote&接口,这个接口中应该包含你要从远端调用的方法名。接下来就是写一个类来实现这个接口中的方法。例如:public&interface&Product&extends&java.rmi.Remote&{&&String&getName()&throws&java.rmi.RemoteE}public&class&ProductImpl&implements&Product&{String&&&public&ProductImpl(String&n)&{&&&&name&=&n;&&}&&public&String&getName()&throws&java.rmi.RemoteException&{&&&&return&&&}}  在这个例子中,接口&Product&是放在客户端的,而&ProductImpl&是放在服务器端的,客户在使用时只需要用指定的规则得到Product&的实例就行了,不用去考虑&Product&接口里的方法是如何实现的。在定义好这两个类后,用Java开发包命令“rmic&ProductImpl”就可以帮助我们自动生成两个类&ProductImpl_Skel&和&ProductImpl_Stub。这两个类就包含了RMI调用的运作机制。有兴趣的朋友可以把这两个类反编译后研究一下。你会发现其中&ProductImpl_Stub&实际上是接口&Product&的一个实现类。RMI&机制就是用这个类来生成&Product&的实例供客户端使用。另一个类&ProductImpl_Skel&则是在服务端响应&ProductImpl_Stub&的调用请求的类。而&RMI&最底层的通讯原理则是利用&ObjectInputStream&和&ObjetOutputStream&通过&Socket&将要调用的方法名及参数列表传到服务器端,服务器端再通过特定的方法调用实现类(在本例中是&ProductImpl)的对应方法,然后将结果通过&Socket&传回客户端就行了。由于&Skel&和&Stub&类是用工具生成的,所以就大大节省了开发的时间。另外,如果我们需要修改一些实现方法或错误,只需要对服务器端的实现类进行修改就可以了,也就是说这种分布式应用的大部分维护工作在服务器端就可以完成。  &现在越来越多的应用使用了&EJB&这种技术。EJB&是从&RMI&发展而来的一项技术,它比RMI定义得更加完善,可以获得更好的面向对象的特性。但它的规则要比RMI复杂一些。但是不管它多复杂,它同样是使用了接口来定义各种不同的&Bean,也同样需要编写相应的实现类来完成具体的功能,最后还要通过&Socket&来进行通讯。EJB的运作机制本身有一定的复杂性,所以其应用的效率理所当然就会受到一定的影响。因此在选择开发技术时应该根据应用的规模和特点仔细考虑,不一定流行的技术就一定能适应你的应用。如果你很好的掌握了面向对象的设计原则,你就可以自行设计。也许你可以根据自己应用的特点设计出更合适的分布式应用结构。五、结论  &除了上述的一些应用外,还有很多地方可以使用接口,比如在Java的事件机制中就常用到接口。另外,对于一些已经开发好的系统,在结构上进行较大的调整已经不太现实,这时可以通过定义一些接口并追加相应的实现来完成功能结构的扩展。  &总之,学好接口可以帮助我们更好的理解和运用面向对象的设计原则。使我们能设计出更好的软件系统。由于本人水平的限制,如有错误之处还请多多指正。
TA的最新馆藏[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢java中,一个类实现某个接口,必须重写接口中的所有方法吗???
不一定,关键要看子类是否是抽象类。
如果子类是非抽象类,则必须实现接口中的所有方法;&
如果子类是抽象类,则可以不实现接口中的所有方法,因为抽象类中允许有抽象方法的存在!
1、抽象类定义
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。通常在编程语句中用 abstract 修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。抽象类是不完整的,它只能用作基类。在面向对象方法中,抽象类主要用来进行类型隐藏和充当全局变量的角色。
2、抽象类特点
1)抽象类不能实例化。
2)抽象类可以包含抽象方法和抽象访问器。
3)不能用 sealed 修饰符修饰抽象类,因为这两个修饰符的含义是相反的。 采用 sealed 修饰符的类无法继承,而 abstract 修饰符要求对类进行继承。
4)从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实际实现。
3、与具体类的比较
1)抽象类不能直接实例化,并且对抽象类使用 new 运算符会导致编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为 null,或者含有对非抽象类的实例的引用(此非抽象类是从抽象类派生的)。
2)允许(但不要求)抽象类包含抽象成员。
3)抽象类不能被密封。
4、与接口的比较
a、不能实例化;
b、包含未实现的方法声明;
c、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员)
a、类可以实现无限个接口,但仅能从一个抽象(或任何其他类型)类继承,从抽象类派生的类仍可实现接口,从而得出接口是用来解决多重继承问题的。
b、抽象类当中可以存在非抽象的方法,可接口不能,且它里面的方法只是一个声明必须用public来修饰没有具体实现的方法。
c、抽象类中的成员变量可以被不同的修饰符来修饰,可接口中的成员变量默认的都是静态常量(static final)。
d、抽象类是对象的抽象,然而接口是一种行为规范。
其他类似问题
为您推荐:
提问者采纳
抽象类可以不用
普通类必须
有问题补充,帮忙看下
AbstractListModel 是个抽象类
所以不用完全实现
哥们帮忙看下,class MyComboBox extends AbstractListModel implements ComboBoxModel
为什么MyComboBox可以只实现 AbstractListModel 继承ListModel中的两个方法而其他没实现呢???
因为 ListModel 的部分方法已经被AbstractListModel 实现了
抽象类可以部分实现,甚至完全(或者完全不)实现接口中的方法,还能额外声明更多的abstract方法
作为子类,就必须把所有没有实现的方法都实现,已经被父类实现的非final方法,可以覆盖
如果你能看到类的源码应该能很快理解
提问者评价
评论(3)&|&13&0
&|&&采纳率28%
其他3条回答
楼主,先声明一点,javax.swing基本是过时的,属于前台的工作,现在前台基本都是定制的,JAVA编程只要关注后台就可以,不过你问的接口问题倒是很重要的,给你解释以下,java中类和接口的设计完全体现了java语言的一些设计思想,比如面向对象,继承、多态等
1 接口的设计解决了java只能单继承的缺点,可以实现多个接口来实现java的多继承
2 实现某个接口必须覆写其中的所有方法,当然也可以是一个空的实现(方法体为空没有任何作用)
3 楼主也许会问了空实现有什么用呢,这就是java的特殊设计,通常的是接口在最上面,下面会有一个这个接口的实现类,有时候这个实现类也是一个空的实现,没有任何方作用!!!编程人员只需要实现那个空的方法,覆写其中自己需要方法的就可以了~~
为什么要这样做呢?原因就是接口是一个抽象的概念,与具体的底层、实现都无关,打个比方,现在的网络编程都是与HTTP协议相关的,如果将来有新的协议出现就只要实现这个接口就可以了,完全不用做任何修改就可以把新的协议容纳进来
总结一下,接口就是一个物体的抽象,规定了这个物体所有的行为方法,与具体的实现无关,这正体现了抽象的概念~~
评论(1)&|&13&0
哈哈,这是API文档的问题,你没看过Java源码,源码中实现的方法比这多,只是API没写全。要学会看源码!!!!
评论&|&2&1
必须地!2楼正解
本文已收录于以下专栏:
相关文章推荐
在这里特别记录一下,以防自己再次用错~
“Java中,一个类实现了某接口,则必须实现该接口中的所有方法么?”这句话其实是不准确的,因为我们还没有考虑到抽象类。
抽象类实现某个接口,可以不实现所有接...
我们先定义一个接口A,再定义一个接口B,他们有相同的名称的方法,该方法类型也相同,当在MYCLASS类中继续了A,B这两个接口,重写ff方法时,重写的到底是A的ff方法还是B的ff方法??
(此种编...
接口和抽象类的区别?为什么需要接口?
1、不同点:接口就是比“抽象类”还“抽象”的“抽象类”,可以更加宽泛的对子类进行约束。全面的实现了:规范和具体实现的分离
在抽象类内可以有具体的方法实现,可以...
Java中 一个类实现了某接口 则必须实现该接口中的所有方法么?
编程语言编程java
JAVA时空 团队
woshidaniel
答:不可以。
接口中定义的都是抽象方法,没有实现,所以当有接口被继承后,必须实现接口类中的所有构造方法,这个过程就是重写接口方法,之后可以重新填写方法内容,但是方法的名,参数类型和个数、参数返回值类...
抽象方法和接口都不能被实例化,但可以定义抽象类和接口类型的引用
如 AddService service = new AddServiceImpl();...
在jdk1.7及以前我们被传授的都是抽象类中可以有抽象方法,接口是特殊的抽象类,因为接口中的所有方法都必须是抽象的,不能有方法实现,而到了Java8,我们发现在接口中也可以有方法的实现,大家是不是有些...
不一定,关键要看子类是否是抽象类。
如果子类是非抽象类,则必须实现接口中的所有方法;
如果子类是抽象类,则可以不实现接口中的所有方法,因为抽象类中允许有抽象方法的存在!
1、抽象类...
Git是个了不起但却复杂的源代码管理系统。它能支持复杂的任务,却因此经常被认为太过复杂而不适用于简单的日常工作。让我们诚实一记吧:Git是复杂的,我们不要装作它不是。但我仍然会试图教会你用(我的)基本...
首先说下网上有很多人说的在当前用户下用root权限来修改passwd和shadow等文件。经尝试,都是坑,因为修改部分文件后,其它文件中还未修改,没有对应配置,此时就进不了该用户组了。
   经过折...
他的最新文章
讲师:董岩
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 编绳接口图解 的文章

 

随机推荐