mac终端下ssh虚拟机中的linux提示WARNING,接口与抽象类的区别

 通常我们在应用中对mysql执行了insert操作后,需要获取插入记录的自增主键,这时候通常用getGeneratedKeys()方法获取主键

重新装了虚拟机中的Linux系统后,在mac下ssh就连不上虚拟机了

  首先,接口与抽象类是Java面向对象设计的基础机制。

  1. 获得数据库返回的主键

 

  接口,是对行为的抽象,它是抽象方法的集合。利用接口能实现API定义与实现分离的目的,不能实例化,只能包含抽象方法、常量。任何field都隐含了public static final修饰。同时没有非静态方法,要么是抽象方法,要么是静态方法。Java中定义了很多接口。如List、Set接口。

           insert into book values(null,’编程珠玑’,45);   2. 获得主键的步骤             conn.prepareStatement(sql,autoGeneratedKeys)             autoGeneratedKeys是一个int值 ,1代表返回生成的主键,2代表不返回生成的主键;为了方便记忆,使用                 Statement.Statement.RETURN_GENERATED_KEYS,Statement.NO_GENERATED_KEYS 3.获得生成的主键   ResultSet rs=ps.getGeneratedKesy();   rs.next();   int userno= rs.getInt(1);

    

Statement stmt = null;    
ResultSet rs = null;    
try {    
    stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY,    
                                java.sql.ResultSet.CONCUR_UPDATABLE);      
    // ...    
    // 省略若干行(如上例般创建demo表)    
    // ...    
    stmt.executeUpdate(    
            "INSERT INTO autoIncTutorial (dataField) "    
            + "values ('Can I Get the Auto Increment Field?')",    
            Statement.RETURN_GENERATED_KEYS);                      // 向驱动指明需要自动获取generatedKeys!    
    int autoIncKeyFromApi = -1;    
    rs = stmt.getGeneratedKeys();                                  // 获取自增主键!    
    if (rs.next()) {    
        autoIncKeyFromApi = rs.getInt(1);    
    }  else {    
        // throw an exception from here    
    }     
    rs.close();    
    rs = null;    
    System.out.println("Key returned from getGeneratedKeys():"    
        + autoIncKeyFromApi);    
}  finally { ... }    

 

localhost:~ zhouqian$ ssh root@172.17.9.19

  抽象类,用abstract修饰,可以实现代码复用。除了不能实例化外,其他与Java类并没有太大差别。可以有一个或多个抽象方法,也可以没有抽象方法。抽象类大多用于抽取Java相关类的共同方法实现和共同成员变量,通过继承来达到代码复用的效果。Java标准库中Collections中就有很多部分被抽取成抽象类,如java.util.ArrayList类。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

  Java实现interface用implements关键字,继承abstract class用extends关键字。Java不支持多继承,除了接口可以多继承接口,类可以实现多个接口,接口不可以继承抽象类只能继承接口。

@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @

  面向对象设计的基本要素:封装、继承、多态

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

  封装:增加了类的安全性与隐藏内部实现的细节,与外部划定了合理的界限,避免外部调用者接触到内部的细节。日常开发中暴露内部细节导致的bug过多,比如在多线程暴露内部状态,导致并发修改问题。

IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

  继承:使我们进行代码复用的主要机制,类似于车、公交车、轿车的归纳总结;另一方面继承也类似于一种紧耦合的一种关系,父类代码修改,也会引起子类的行为。所以滥用继承可能会起到反效果。

Someone could be eavesdropping on you right now (man-in-the-middle
attack)!

  多态:可能立即想到,重写(override)、重载(overload)、向上转型(父类引用指向子类对象)。简单说就是,父子类中相同名字和参数方法,有着不同的实现,重载则是在同一个类里有着相同的方法名称,不同的参数。返回值不同不是重载,编译都会出错。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

标签:
网站地图xml地图