JDBC基础

144 阅读2分钟

JDBC全称是java database connectivity,即java数据库连接,它是一种可以执行sql语句的java api。程序可以通过jdbc api连接到关系数据库,并使用结构化查询语言完成数据库的查询、更新等操作。 通过使用jdbc,就可以使用一种api访问不同的数据库系统。换言之,开发人员面向jdbc api编写应用程序,根据不同的数据库使用不同的数据库驱动即可。

JDBC流程

  • 装载驱动程序

JDBC中的Driver类、DriverManager类。Driver类是一个接口,定义了各个驱动程序都必须实现的功能,是驱动程序的抽象。而DriverManager类是Driver类的管理类。用Class.forName(DriverName)向DriverManager注册驱动程序。DriverName就是响应数据库驱动的名称。

Class.forName(“com.mysql.jdbc.Driver");
  • 建立数据库连接

通过DriverManager类中的getConnection()方法调用驱动程序。getConnection()方法返回的是一个JDBC Connection对象。Connection对象其实代表的是Java应用程序对后端数据库的一条物理链接。基于这条链接,我们可以执行SQL语句。 Connection对象常用的方法就是createStatement()方法,这个方法用来创建Statement对象。调用getConnection()方法需要传入三个参数,分别是URL、UserName、PassWord。注意:使用getConnection()可能会抛出异常,所以这里要捕获异常。

Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/数据库名","root","root");
  • 执行sql语句

用Connection连接创建Statement对象。Statement对象,说到底就是一个SQL容器,这个容器可以承载一些SQL语句。然后调用executeQuery()方法或execute()方法执行SQL语句。其中,executeQuery()方法可执行查询操 作,execute()方法更新、添加、删除等操作。执行后返回int值或ResultSet对象。ResultSet是数据库结果集的数据表。

Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("select name from user");
  • 获取执行结果

若返回的是ResultSet对象,则要用循环取出ResultSet对象中的数据。因为ResultSet对象具有指向其当前数据行的指针。最 初,指针被置于第一行之前。next方法可以将指针移动到下一行;使用该方法是会true或false(若没有下一行则返回false),所以可以在 while循环中使用它迭代结果集。

while(rs.next()){
    System.out.println(rs.getString("name"));
}
  • 清理资源

在finally{ }方法中清理资源。

finally{
    try{
        if(rs != null)
            rs.close();

        if(stmt != null)
            stmt.close();

        if(conn != null)
            conn.close();
    }
   catch(SQLException){
      //ignore
   }
}