JDBC 教程纵览 SQL 基础 JDBC 驱动类型 什么是JDBC JDBC API是一个Java API,可以访问任何类型表列数据,特别是存储在关系数据库中的数据。JDBC代表Java数据库连接。 JDBC库中所包含的API通常与数据库使用于: 连接到数据库 创建SQL或MySQL语句 在数据库中执行SQL或MySQL查询 查看和修改数据库中的数据记录 使用JDBC前提条件 在学习JDBC之前,需要对以下两个编程知识有一定的了解: JAVA基础编程 SQL语句或一种数据库系统(如:MySQL,Oracle数据库) JDBC环境设置 请确认您已完成以下设置: JAVA(JDK)安装 数据库系统的安装(如:MySQL的安装) 除上述者外环境配置外,还需要建立一个数据库,为本程项目作为测试使用。假设创建一个数据库:test,在这个数据库上创建一张表:sites。 在创建程序之前,我们需要在MySQL数据库中创建一个数据test_jdbc_db: create database test_jdbc_db; 并且创建一张表Sites: create table Sites( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(100) NOT NULL, url VARCHAR(40) NOT NULL, PRIMARY KEY ( id ) ); 插入如下数据: insert into sites(name,url) values('编程字典','http://www.CodingDict.com'); insert into sites(name,url) values('百度','http://www.baidu.com'); insert into sites(name,url) values('谷歌','http://www.google.com'); 创建JDBC应用程序 建立一个JDBC应用程序,本教程中以Java连接MySQL为一个示例,分六个步骤进行: 1. 导入包 在程序中包含数据库编程所需的JDBC类。大多数情况下,使用 import java.sql.* 就足够了,如下所示: // 第一步:导入需要的包 import java.sql.*; 2. 注册JDBC驱动程序 需要初始化驱动程序,这样就可以打开与数据库的通信。以下是代码片段实现这一目标: //第二步:注册JDBC驱动 Class.forName("com.mysql.jdbc.Driver"); 3. 打开一个连接 使用DriverManager.getConnection()方法来创建一个Connection对象,它代表一个数据库的物理连接,如下所示: // 第三步:打开一个连接 static final String USER = "root"; static final String PASS = "123456"; static final String DB_URL = "jdbc:mysql://localhost:3308/test_jdbc_db"; System.out.println("连接到数据库..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); 4. 执行一个查询 需要使用一个类型为Statement或PreparedStatement的对象,并提交一个SQL语句到数据库执行查询。如下: //第四步:执行一个查询 System.out.println("创建语句..."); stmt = conn.createStatement(); String sql; sql = "SELECT id, name, url FROM Sites"; ResultSet rs = stmt.executeQuery(sql); 如果要执行一个SQL语句:UPDATE,INSERT或DELETE语句,那么需要下面的代码片段: //第四步:执行一个查询 System.out.println("创建语句..."); stmt = conn.createStatement(); String sql; sql = "DELETE FROM Sites"; ResultSet rs = stmt.executeUpdate(sql); 5. 从结果集中提取数据 这一步中演示如何从数据库中获取查询结果的数据。可以使用适当的ResultSet.getXXX()方法来检索的数据结果如下: //第五步:从结果集中提取数据 while(rs.next()){ //根据列名称检索数据 int id = rs.getInt("id"); String name = rs.getString("name"); String url = rs.getString("url"); //显示 System.out.print("ID: " + id); System.out.print(", Name: " + name); System.out.println(", url: " + url); } 6. 清理环境资源 在使用JDBC与数据交互操作数据库中的数据后,应该明确地关闭所有的数据库资源以减少资源的浪费,对依赖于JVM的垃圾收集如下: //第六步:清理环境资源 rs.close(); stmt.close(); conn.close(); 第一个JDBC 程序实例 基于上面的步骤,我们可以综合示例代码,您可以使用以下代码作为模板来编写JDBC代码。 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Demo01 { static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; // 注意:默认端口号3306可以不写 static final String DB_URL = "jdbc:mysql://localhost:3308/test_jdbc_db"; static final String USER = "root"; static final String PASS = "123456"; public static void main(String[] args) { Connection conn = null; Statement stmt = null; try{ Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(DB_URL,USER,PASS); stmt = conn.createStatement(); String sql; sql = "SELECT id, name, url FROM Sites"; ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ int id = rs.getInt("id"); String name = rs.getString("name"); String url = rs.getString("url"); System.out.print("ID: " + id); System.out.print(", Name: " + name); System.out.print(", url: " + url); System.out.println(); } rs.close(); stmt.close(); conn.close(); }catch(SQLException se){ se.printStackTrace(); }catch(Exception e){ e.printStackTrace(); }finally{ try{ if(stmt!=null) stmt.close(); }catch(SQLException se2){ } try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); } } } } 程序运行结果如下所示: ID: 1, Name: 编程字典, url: http://www.CodingDict.com ID: 2, Name: 百度, url: http://www.baidu.com ID: 3, Name: 谷歌, url: http://www.google.com SQL 基础 JDBC 驱动类型