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驱动程序:

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

说明 Class.forName()方法的作用是查找并加载MySQL驱动类,在类加载的同时也完成了向DriverManager注册MySQL驱动。


2)获取数据库连接:

  1. 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对象:

  1. PreparedStatement ps = conn.prepareStatement(sql);

说明 prepareStatement()方法的作用是向数据库发送一条参数化的SQL语句,并返回PreparedStatement对象。


4)执行SQL语句:

  1. // 执行增删改并获取执行结果
  2. boolean result = ps.executeUpdate();
  3.  
  4. // 执行查询并获取结果集
  5. ResultSet rs = ps.executeQuery();

说明 executeUpdate()用于执行INSERT、UPDATE、DELETE以及DDL语句(CREATE TABLE、DROP TABLE、ALTER TABLE等),executeQuery()用于执行SELECT语句。


5)遍历ResultSet:

  1. // 遍历查询结果集
  2. while (rs.next()) {
  3. System.out.println(rs.getString(fieldName));
  4. }

说明 ResultSet类提供了getDate()、getInt()、getString()等方法获取对应类型字段的值,这些方法的参数可以是字段索引或字段名称。


6)关闭数据库连接:

  1. conn.close();

说明 数据库操作完成后,要依次关闭ResultSet、PreparedStatement和Connection,释放JDBC资源。