- 基本概念
- 快速入门
- 对JDBC中各个接口和类详解
JDBC概念
**概念:**Java DataBase Connectivity ,Java数据库连接
本质(类似Django的ORM):The sun公司定义的一套操作所有关系型数据库的规则(接口)。各个厂家根据接口去实现。我们可以是有这套接口编程,真正的驱动时jar包中的实现类
快速入门
简单步骤
- 导入驱动jar包
- 注册驱动
- 数据库连接对象Connection
- 定义sql
- 获取执行SQL语句的Statement对象
- 执行sql,接受返回结果
- 处理结果
- 释放资源
简单使用
1 | package learn.jdbc; |
步骤详解
-
DriverManager:驱动管理对象
-
注册驱动
注册与给定的驱动程序
DriverManager
1
static void registerDriver(Driver driver)
写代码使用
1
Class.forName("com.mysql.jdbc.Driver");
为静态代码使用
1
2
3
4
5package com.mysql.cj.jdbc;
public class Driver extends com.mysql.cj.jdbc.NonRegisteringDriver implements java.sql.Driver {
public Driver() throws java.sql.SQLException { /* compiled code */ }
}mysql5.0以上可以不用注册驱动
-
获取数据库连接
尝试建立与给定数据库URL的连接。
1
static Connection getConnection(String url, String user, String password)
url:
jdbc:mysql://ip:port/database
默认为本地sql地址及默认端口
-
-
Connection:数据库连接对象
- 获取执行sql对象
1
Statement createStatement()
1
PreparedStatement prepareStatement(String sql)
-
管理事务
开启事务:参数为false即开启事务
1
void setAutoCommit(boolean autoCommit)
提交事务
1
void commit()
回滚事务
1
void rollback()
-
Statement:执行sql对象
执行任意sql
1
boolean execute(String sql)
执行DML DDL语句,返回影响的行数
1
int executeUpdate(String sql)
1
ResultSet executeQuery(String sql)
-
ResultSet:结果集对象
-
PreparedStatement:执行sql对象
JDBC工具类:JDBCUtils
目的:简化书写
分析:
- 注册驱动也抽取
- 抽取一个方法获取连接对象
- 抽取方法释放资源
抽取连接对象
1 |
close释放资源重载
1 | public static void close(Statement stmt, Connection conn){ |