9.3.3 JDBC的基本使用
JDBC(Java Database Connectivity,Java数据库连接)是由原SUN公司提供的一套数据库API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯Java API编写数据库应用程序,并且可跨平台运行,还不受数据库供应商的限制。
MySQL JDBC驱动的下载地址为http://dev.mysql.com/downloads/connector/j/,笔者下载的是mysql-connector-java-5.1.27-bin.jar。使用JDBC操作MySQL数据库的流程如下。
1)加载MySQL驱动程序:
- Class.forName("com.mysql.jdbc.Driver");
说明 Class.forName()方法的作用是查找并加载MySQL驱动类,在类加载的同时也完成了向DriverManager注册MySQL驱动。
2)获取数据库连接:
- Connection conn = DriverManager.getConnection(url, user, password);
说明 加载MySQL驱动后就可以使用DriverManager类的getConnection()方法获取数据库连接,getConnection()方法的3个参数分别表示数据库的URL、用户名和密码。MySQL数据库的URL格式为jdbc:mysql://<hostname>[<:3306>]/<dbname>,其中,hostname表示数据库服务器的主机名称或IP地址,dbname表示要连接的数据库名称。
3)创建PreparedStatement对象:
- PreparedStatement ps = conn.prepareStatement(sql);
说明 prepareStatement()方法的作用是向数据库发送一条参数化的SQL语句,并返回PreparedStatement对象。
4)执行SQL语句:
- // 执行增删改并获取执行结果
- boolean result = ps.executeUpdate();
- // 执行查询并获取结果集
- ResultSet rs = ps.executeQuery();
说明 executeUpdate()用于执行INSERT、UPDATE、DELETE以及DDL语句(CREATE TABLE、DROP TABLE、ALTER TABLE等),executeQuery()用于执行SELECT语句。
5)遍历ResultSet:
- // 遍历查询结果集
- while (rs.next()) {
- System.out.println(rs.getString(fieldName));
- … …
- }
说明 ResultSet类提供了getDate()、getInt()、getString()等方法获取对应类型字段的值,这些方法的参数可以是字段索引或字段名称。
6)关闭数据库连接:
- conn.close();
说明 数据库操作完成后,要依次关闭ResultSet、PreparedStatement和Connection,释放JDBC资源。