JDBC
应用程序通过驱动连接到数据库,进而操作数据库。
简化开发人员对数据库的操作,提供了一个java操作数据库的规范,俗称JDBC
对于程序猿,只需要学习JDBC提供的接口。
java.sql
javax.sql
导入数据库驱动的包: mysql-connector-java-8.0.23.jar
加载驱动
连接数据库 DriverManager
获得执行sql的对象 Statement
获得返回的结果集
释放连接
URL
DriverManager
Statement PrepareStatement 执行SQL的对象
ResultSet 查询的结果集:封装了所有的查询结果
遍历
释放资源
执行SQL的对象 Statement
Statement statement = connection.createStatement();
CRUD操作-create
使用executeUpdate(String sql)方法完成数据添加操作:
CRUD操作-update
使用executeUpdate(String sql)方法完成数据更新操作:
CRUD操作-delete
使用executeUpdate(String sql)方法完成数据删除操作:
CRUD操作-read
使用executeQuery(String sql)方法完成数据查询操作:
创建utils工具类
调用 utils工具类
PreparedStatement 使用?占位符
防止SQL注入的本质,传递进来的参数当做字符
ACID原则
原子性:要哦全部完成,要么都不完成
一致性:总数不变
隔离性:多个进程互不干扰。存在以下问题
脏读:一个事务读取了另一个没有提交的事务
不可重复读:在同一个事务内,重复读取表中的数据,表数据发生了改变
虚读:在一个事务内,读取到了别人插入的数据,导致前后读出来的结果不一致
持久性:一旦提交不可逆,持久化到数据库
数据库执行步骤:数据库连接 --- 执行完毕 --- 释放
池化技术:准备一些预先的资源,过来就连接准备好的
连接池常用的参数
最小连接数:10
最大连接数: 100 业务最高承载上限
等待超时:100ms
编写连接池,需要实现一个接口 DateSource
开源数据源实现
DBCP
C3P0
Druid
使用这些连接池之后,可以节省连接数据库的代码Connection connection = JdbcUtils.getConnection();
需要用到的jar包:commons-dbcp-1.4.jar、commons-pool-1.6.jar
配置文件
工具类
需要用到的jar包:mchange-commons-java-0.2.20.jar、c3p0-0.9.5.5.jar
配置文件 c3p0-config.xml