1、JDBC概念
??? 1)从物理结构:JDBC是Java语言访问数据库的一套接口(API)集合。
??? 2)从本质上:JDBC是调用者(开发人员)和实现者(数据库厂商)之间的协议。
??? 3)JDBC的实现由数据库厂商以驱动程序的形式提供。
??? 4)开发人员借助JDBC的API,就可以使用纯Java的方式来连接和操纵数据库。?
?
2、JDBC常用接口和类简介
??? 1)java.sql.Driver 接口:?代表驱动程序,每个驱动程序类必须实现的接口。
??? 2)java.sql.DriverManager 类:驱动程序管理类,管理一组 JDBC 驱动程序的基本服务。
??? 3)java.sql.Connection 接口:数据库连接,用于与特定的数据库连接。
??? 4)java.sql.Statement? 接口:数据库操作接口,用于执行静态SQL语句并返回它所生成结果的对象。
??? 5)java.sql.PreparedStatement接口:数据库操作接口,表示保存预编译SQL语句的对象,用于多次高效地执行该SQL语句。
????6)java.sql.CallableStatement接口:数据库操作接口,用于执行SQL存储过程的接口。
??? 7)java.sql.ResultSet 接口: 代表结果集的数据表,用于保存查询数据库返回的结果。?
?
3、基本操作步骤如下:
?
??? 1)加载(注册)数据库驱动(到JVM)。
??? 2)建立(获取)数据库连接。
??? 3)创建(获取)数据库操作对象。
??? 4)定义操作的SQL语句。
??? 5)执行数据库操作。
??? 6)获取并操作结果集
??? 7)回收数据库资源(关闭结果集-->关闭数据库操作对象-->关闭连接)
?
?4、实例参考(以MySQL为例)
?
class="java">package com.linwei.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCTest { /** * 使用JDBC连接并操作mysql数据库 */ public static void main(String[] args) { // 数据库驱动类名的字符串 String driver = "com.mysql.jdbc.Driver"; // 数据库连接串 String url = "jdbc:mysql://127.0.0.1:3306/jdbctest"; // 用户名 String username = "root"; // 密码 String password = "mysqladmin"; Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 1、加载数据库驱动( 成功加载后,会将Driver类的实例注册到DriverManager类中) Class.forName("com.mysql.jdbc.Driver"); // 2、获取数据库连接 conn = DriverManager.getConnection(url, username, password); // 3、获取数据库操作对象 stmt = conn.createStatement(); // 4、定义操作的SQL语句 String sql = "select * from user where id = 100"; // 5、执行数据库操作 rs = stmt.executeQuery(sql); // 6、获取并操作结果集 while (rs.next()) { System.out.println(rs.getInt("id")); System.out.println(rs.getString("name")); } } catch (Exception e) { e.printStackTrace(); } finally { // 7、关闭对象,回收数据库资源 if (rs != null) { //关闭结果集对象 try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (stmt != null) { // 关闭数据库操作对象 try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (conn != null) { // 关闭数据库连接对象 try { if (!conn.isClosed()) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } }
?