背景
持久化: 把 Java 对象保存在硬盘中
序列化: 将对象转换为二进制对象, 再保存
保存在关系型数据库中
Object-Relational Mapping(对象 - 关系映射框架, 或 ORM 框架): 把对象属性变成数据库的行 - 列, 进而存储在数据库中
Java Database Connective JDBC(Java 数据库连接技术):Java 提供的一组与平台无关的数据库操作标准, 用于 Java 与关系型数据库的连接
O/R Mapping 中间件
EJB: 对 JDBC 的重量级封装, 用面向对象的风格实现数据的创建, 读取, 查询等操作
Hibernate: 对 JDBC 的轻量级封装, 把 Java 属性用声明的方式映射到数据库表, 采用反射机制实现了持久化
Spring: 基于 IoC 和 AOP 的结构 J2EE 系统的框架
MyBatis: 一种半自动的 ORM 框架, 前身是 iBatis
操作形式
JDBC 本地驱动: 由不同的数据库生产商根据 JDBC 定义的操作标准实现驱动程序, 程序可直接通过 JDBC 进行数据库的连接操作, 性能较高, 但需对不同数据库编写相应驱动
JDBC 网络驱动: 利用特定的数据库连接协议进行数据库的网络连接, 可连接任何一个指定服务器的数据库, 实际开发使用最多
连接步骤
向容器中加载数据库驱动程序
通过 DriverManager 类根据指定数据库连接信息取得数据库连接
利用 Statement,PreparedStatement,ResultSet 实现数据库 CRUD 操作
释放占用的资源
连接数据库
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.SQLException;
- public class TestDemo {
- public static void main(String[] args) {
- try {
- Class.forName("com.mysql.jdbc.Driver");
- Connection c = DriverManager.getConnection(
- "jdbc:mysql://127.0.0.1:3306/mysql?serverTimezone=GMT+8&characterEncoding=UTF-8&useSSL=false",
- "root", "Chen1227+");
- System.out.println("数据库连接成功!" + c);
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- }catch(SQLException e) {
- e.printStackTrace();
- }
- }
- }
- View Code
查询数据
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.ResultSet;
- import java.sql.SQLException;
- import java.sql.Statement;
- public class TestDemo {
- public static void main(String[] args) {
- try {
- // 加载数据库驱动
- Class.forName("com.mysql.jdbc.Driver");
- // 连接数据库
- Connection c = DriverManager.getConnection(
- "jdbc:mysql://127.0.0.1:3306/mysql?serverTimezone=GMT+8&characterEncoding=UTF-8&useSSL=false",
- "root", "Chen1227+");
- System.out.println("数据库连接成功!" + c);
- // 建立连接
- Statement s = c.createStatement();
- System.out.println("获取 Statement 对象:" + s);
- // 执行 SQL 语句
- String sql = "SELECT order_num, cust_id FROM Orders";
- ResultSet re = s.executeQuery(sql);
- while(re.next()) {
- int order = re.getInt("order_num");
- int cust = re.getInt("cust_id");
- System.out.println(order + "," + cust);
- }
- System.out.println("执行语句成功!");
- // 关闭资源
- re.close();
- s.close();
- c.close();
- System.out.println("资源关闭成功!");
- } catch (ClassNotFoundException e) {
- e.printStackTrace();
- }catch(SQLException e) {
- e.printStackTrace();
- }
- }
- }
- View Code
[Java] 数据库编程 JDBC
来源: http://www.bubuko.com/infodetail-3460268.html