目录
概念
JDBC的优势
使用JDBC
URL格式
操作步骤
概念
JDBC,即Java Database Connectivity,java数据库连接。 是一种用于执行SQL语句的Java API,它是Java中的数据库连接规范。这个API由java.sql.* , javax.sql.* 包中的一些类和接口组成,它为Java开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问。
JDBC的优势
- Java语言访问数据库操作完全面向抽象接口编程
- 开发数据库应用不用限定在特定数据库厂商的API
- 程序的可移植性大大增强
使用JDBC
数据库:是一个网络主机上的数据库服务端进程,需要使用URL来连接
URL格式
协议名://服务器地址:服务端口号/带层次的文件路径?键1=值1&键2=值2
本机的IP:127.0.0.1 域名:localhost
JDBC中,需要使用数据库服务器URL来进行连接,我使用的是本机,默认端口3306,带层次的路径,写数据库名。
操作步骤
(1)建立数据库连接:
方式一:DriverManager
方式二:DataSource(数据源/数据库连接池)连接池初始化时,就创建一定数量的数据库连接对象(Connection)connection.close()只是重置连接对象属性,放回连接池
比较:
DriverManager每次都是新建一个物理连接,释放是关闭物理连接(效率较低)
DataSource是初始化就创建一定数量的连接,释放只是重置并放回连接池(可以复用,效率高)
(2)创建操作命令对象Statement:用于执行SQL代码
三种操作命令对象:
- Statement:不带占位符的简单操作命令对象
- PreparedStatement:带占位的预编译操作命令对象?
?优势:提前预编译,效率更高;防止SQL注入,更安全。(防SQL注入的原理:把替换字符中的单引号加上‘\’转义)
- CallableStatement:用于执行存储过程的
(3)执行SQL
(4)如果是插入,修改,删除操作,调用executeUpdate,返回int表示处理成功多少条,如果是查询操作,处理结果集ResultSet,调用executeQuery,返回结果集
while(resultSet.next()){//遍历每一行数据
int id=resultSet.getInt("id字段名");//get**获取某个字段的值
String name=resultSet.getString("name字段名");
}
(5)释放资源:反向释放(ResultSet,Statement,Connection)都是调用close()释放。
|