1、JDBC
1.1 简介
JDBC工作原理
(1)JDBC:Java数据库连接技术的简称,提供连接各种常用数据库的能力
(2)主要功能:与数据库建立连接、执行SQL 语句、处理结果。
(3)核心接口:
DriverManager
依据数据库的不同管理JDBC驱动
Connection
负责连接数据库和传送数据
Statement
由Connection产生,负责执行SQL语句
ResultSet
负责保存Statement执行后所产生的查询结果
4个核心接口
(4)连接数据库的两种方法
纯JAVA方式连接:由JDBC驱动直接访问数据库
优点:完全Java代码,快速、跨平台
缺点:访问不同的数据库需要下载专用的JDBC驱动
使用JDBC-ODBC桥方式连接数据库
优点:可以访问所有ODBC可以访问的数据库
缺点:执行效率低、功能不够强大
1.2 JDBC访问数据库
步骤:
(1)加载JDBC驱动
(2)与数据库建立连接
(3)发送SQL语句,并得到返回结果
(4)处理返回结果
(5)释放资源
// 纯JAVA方式
public class DBConnection {
private static final String DBDRIVER = "com.mysql.jdbc.Driver";
private static final String DBURL = "jdbc:mysql://106.52.165.12:3306/Soso?useUnicode=true&characterEncoding=utf-8&useSSL=false";
private static final String DBUSER = "root";
private static final String DBPASSWORD = "";
public int linkMysql(String sql) {
Connection conn = null;
Statement stmt = null;
try {
Class.forName(DBDRIVER); // (1)加载JDBC驱动
} catch (Exception e) {
e.printStackTrace();
return -1;
}
try{
//(2)与数据库建立连接
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
//(3)发送SQL语句,并得到返回结果
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql); // 查询操作
// int executeUpdate(String sql) 插入删除更新操作
//(4)处理返回结果
while (rs.next()) {
int a = rs.getInt("a");
String b = rs.getString("b");
float c = rs.getFloat("c");
}
return 0;
} catch (Exception e) {
e.printStackTrace();
return -1;
} finally {
if(conn != null) {
try { //(5)释放资源
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
不使用Statement而使用PreparedStatement
Connection conn = null;
PreparedStatement pstmt = null;
//…
// 建立连接
//… …
// 更新狗狗信息到数据库
String sql="update dog set health=?,love=?";
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, 80);
pstmt.setInt(2, 15);
pstmt.setInt(3, 1);
pstmt.executeUpdate();
//… …
pstmt.close();
conn.close();
2、DAO
(1)数据持久化:将程序中的数据在瞬时状态和持久状态间转换的机制
(2)Data Access Object(数据存取对象):位于业务逻辑和持久化数据之间,实现对持久化数据的访问
(3)组成部分
DAO接口
DAO实现类
实体类
属性一般使用private修饰,提供public修饰的getter/setter方法
实体类提供无参构造方法,根据业务提供有参构造
实现java.io.Serializable接口,支持序列化机制
数据库连接和关闭工具类
DAO组成部分
DAO各部分关系