javase继承方法、包的创建、异常处理和JDBC

1.Java中的继承
(1)继承是Java面向对象编程技术的一块基石,它允许创建分等级层次的类。运用继承,可以创建一个通用类定义一系列一般特性。该类可以被更具体的类继承。
 被继承的类称为父类
 继承父类的类称为子类
 执行继承时,子类将获得父类的属性,并具有自身特有的属性。
extends关键字用于继承类。声明一个继承父类的类的通常形式如下:
javase继承方法、包的创建、异常处理和JDBC
注意:
 没有extends,默认父类为Object
 只能有一个父类,即单继承
 子类继承父类的全部成员,除了private成员
 子类与父类不在同包,使用默认访问权限的成员不能被继承
 构造方法不能被继承
继承的特性:
 子类拥有父类非 private 的属性、方法。
 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
 子类可以用自己的方式实现父类的方法。
 Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 A 类继承 B 类,B 类继承 C 类,所以按照关系就是 C 类是 B 类的父类,B 类是 A 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。
 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。
(2)super与this
super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类。
this关键字:指向自己的引用。
javase继承方法、包的创建、异常处理和JDBC
输出:
animal : eat
dog : eat
animal : eat

final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写:
声明类:
javase继承方法、包的创建、异常处理和JDBC
声明方法:
javase继承方法、包的创建、异常处理和JDBC
2. 包的创建
javase继承方法、包的创建、异常处理和JDBC

Java允许使用包将多个类组织在一起。借助于包可以方便的组织管理类,并将自定义的类与其它的类库分开管理。Java就是使用包来管理类库的 。 使用包维护类库比较简单,只要保证在同一个包下不存在同名的类即创建一个包也比较简单:只要将package命令作为一个Java源文件的第一句就可以,该文件中定义的任何类将属于指定的包。
 用package声明包,以分号结尾。
 作为Java程序的第一条语句。
javase继承方法、包的创建、异常处理和JDBC
4. 包中类的访问
一个类可以访问其所在包的所有类。访问其他包的类有如下两种方式访问 :
使用import语句导入要访问的类 ,如:
import java.util.;
import mypackage.school.Student ;
使用的类名前直接添加完整的包名 ,如:
java.util.Date now = new java.util.Date();
mypackage.school.Student tom = new mypackage.school.Student();
注意:
指明导入当前包的所有类,不能使用类似于java. * 的语句来导入以java为前缀的所有包的所有类。

3.9.3 包的命名规范
 包名由小写字母组成,不能以圆点开头或结尾
 包名之前最好加上唯一的前缀,通常使用组织倒置的网络域名
package net.javagroup.mypackage;
 包名后续部分依不同机构内部的规范不同而不同
javase继承方法、包的创建、异常处理和JDBC
3.异常
javase继承方法、包的创建、异常处理和JDBC

javase继承方法、包的创建、异常处理和JDBC

4.JDBC的使用
JDBC是Java数据库连接技术的简称,提供连接各种常用数据库的能力。
javase继承方法、包的创建、异常处理和JDBC
JDBC工作原理:
javase继承方法、包的创建、异常处理和JDBC
JDBC API:提供供程序员调用的接口与类,集成在java.sql和javax.sql包中,如:
 DriverManager类
 Connection接口
 Statement接口
 ResultSet接口
JDBC工作原理:
DriverManager:依据数据库的不同,管理各种不同的JDBC驱动。
JDBC 驱动:由数据库厂商提供,负责连接各种不同的数据库。
javase继承方法、包的创建、异常处理和JDBC
JDBC API主要功能:与数据库建立连接、执行SQL 语句、处理结果。
 DriverManager :依据数据库的不同,管理JDBC驱动。
 Connection :负责连接数据库并担任传送数据的任务。
 Statement :由 Connection 产生、负责执行SQL语句。
 ResultSet:负责保存Statement执行后所产生的查询结果。

9.3.2 使用流程
JDBC的使用流程如下:
try {
//1.加载JDBC驱动
Class.forName(JDBC驱动类);
}
… …
try {
//2.与数据库建立连接
Connection con=DriverManager.getConnection(URL,数据库用户名,密码);
//3.发送SQL语句并得到结果
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(“SELECT a, b, c FROM Table1”);
//4.处理返回结果
while (rs.next()) {
int x = rs.getInt(“a”);
String s = rs.getString(“b”);
float f = rs.getFloat(“c”);
}
//5.释放资源
rs.close();
stmt.close();
con.close();
}

数据库访问基类:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**

  • 数据库访问基类
    */
    public class BaseDao {
    //数据库驱动
    private String driver=“com.mysql.jdbc.Driver”;
    //数据库连接地址
    private String url=“jdbc:mysql://localhost:3306/orcl”;
    //数据库用户名
    private String name=“root”;
    //数据库密码
    private String password="";

    public Connection conn;//数据库连接对象
    public PreparedStatement ps;//数据库操作对象
    public ResultSet rs;//存放结果数据

    /**

    • 获取数据库连接
      */
      public Connection getConn(){
      try {
      Class.forName(driver);
      this.conn=DriverManager.getConnection(url,name,password);
      } catch (Exception e) {
      e.printStackTrace();
      }
      return conn;
      }

    public static void main(String[] args) throws Exception {
    //1. 获取连接
    Connection conn=new BaseDao().getConn();
    //2. 执行查询
    String sql=“select * from k_user”;
    PreparedStatement ps=conn.prepareStatement(sql);
    ResultSet rs=ps.executeQuery();
    //3. 循环输出数据
    while(rs.next()){
    System.out.println(“用户名是:”+rs.getString(“username”));
    }
    }

}