转自:http://jokerlinisty.iteye.com/blog/2198399
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为例)
package com.brad.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?useUnicode=true&characterEncoding=utf8";
// 用户名
String username = "root";
// 密码
String password = "123456";
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 1、加载数据库驱动( 成功加载后,会将Driver类的实例注册到DriverManager类中)
Class.forName(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();
}
}
}
}
}