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
}
}