天天看点

Java学习-JDBC

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