JDBC

JDBC

本质是一套操作数据库的接口,各个数据库根据自身的实现原理去实现JDBC,数据库对JDBC接口的实现称为该数据库的驱动,因此我们在使用数据库前需要导入该数据库的驱动jar包

程序员面向JDBC接口就可以操作各种类型的数据库,降低程序员的学习成本

JDBC编程六步:

  1. 注册驱动(告知java连接的是哪个数据库)

    • 第一种方式

      Driver driver=new com.mysql.cj.jdbc.Driver();

      DriverManager.registerDriver(driver);

      Driver为java.sql.Driver的接口,各个数据库对这个接口的实现类也叫Driver

      我们new数据库驱动的Driver(com.mysql.cj.jdbc.Driver)赋给java.sql.Driver(多态),要注意不要搞混了

    • 第二种方式

      Class.forName("com.mysql.cj.jdbc.Driver");

      通过反射机制forName方法直接加载Driver类,不需要接收其返回值,因为我们只需要它的类加载动作

      因为实现类Driver在其静态代码块中写入了上述第一种注册驱动的代码,类加载,静态代码块被执行,驱动注册也随之完成。

  2. 获取连接(JVM进程与数据库进程的通道打开)

    String url="jdbc:mysql://127.0.0.1:3306"/数据库名

    String user="root"

    String password="000000"

    Connection conn=DriverManager.getConnection(url,user,password);

  3. 获取数据库操作对象(有数据库操作对象才能操作数据库)

    Statement stmt=conn.createStatement();

  4. 执行sql语句

    String sql="select * from table1";

    ResultSet rst=stmt.executeQuery(sql)

    查询语句使用executeQuery(String sql)执行sql语句,其返回值类型为ResultSet

    DDL语句(create、alter、drop)和DML语句(insert、update、delete)需要使用executeUpdate(String sql)执行sql语句,其返回值为整数,表示被影响的行数。

    ResultSet为结果集,查询的数据库表的信息都存储在结果集中,用完也需要关闭

  5. 处理查询结果集(当执行的是select语句时)

    while(rst.next()){
    	out.print(rst.getString(1)+"\t");
    }
    

    next()方法为ResultSet结果集中的方法,执行一次该方法光标向下移动一行,若该行有数据则返回true,没有数据就返回false,默认光标初始指向第一行有数据的前一行。

    getString()方法为ResultSet结果集中的方法,其作用为无论取出数据库中数据是何种类型都以字符串类型取出。参数为index,或查询语句中的列名(推荐这种方式,比较健壮),表示第几列数据

    取数据除了可以用getString()取出,也可以用相应的类型方法取出,例如getInt,getDouble...

    JDBC中下标从1开始,不从0开始

  6. 释放资源(进程间的通信,用完要关闭)

    为了确保一定关闭,将关闭操作放入finally语句块中

    将conn,stmtrst,rst关闭,并分开处理异常

posted @ 2021-11-02 10:24  这个世界会好的  阅读(111)  评论(0编辑  收藏  举报