day16_jdbc

回顾

一、JDBC是什么?
Java DataBase Connectivity
JDBC和数据驱动的关系:规范和实现的关系。

二、JDBC的编码步骤
a、注册驱动
b、获取链接
c、得到SQL语句对象
d、执行语句
e、如果有结果集,遍历
f、释放资源

三、常用接口或类
DriverManager
Connection
Statement
ResultSet:java类型和数据库类型的对应关系。游标。
释放资源

四、抽取JDBC工具类

五、改写注册和登录案例
业务层和DAO层解耦

六、PreparedStatement接口

七、客户信息管理

今天的内容

一、继续完成客户信息的修改和删除

二、大结果集的分页编码(重点、难点)

1、数据的支持:MySQL

LIMIT M,N;

M:开始记录的索引。第一条记录的索引是0
N:每次查询出的记录条数

一次取10条:

第一页:SELECT * FROM customers LIMIT 0,10;
第二页:SELECT * FROM customers LIMIT 10,10;
第n页:SELECT * FROM customers LIMIT (n-1)*10,10;

总页数:
总页数=总记录条数%10==0?总记录条数/10:总记录条数/10+1;

2、具体的分页代码

2.1设计Page类,封装所有与分页有关的信息

day16_jdbc_第1张图片

day16_jdbc_第2张图片

day16_jdbc_第3张图片

2.2改造Service

day16_jdbc_第4张图片

参考实现:

day16_jdbc_第5张图片

2.3改造DAO

day16_jdbc_第6张图片

2.4Servlet和JSP

day16_jdbc_第7张图片

三、批处理(练一遍)

1、一次性向数据库发送多条SQL语句。降低了与数据库的交互次序,提升数据库层执行效率。

四、LOB(CLOB、BLOB)的存取(练一遍)

1、LOB:Large Object。

CLOB:character Large Object。大文本。
BLOB:Binary Large Object。图片、视频、声音等。

2、MySQL支持的LOB的类型。可变长度类型。
TINYBLOB, TINYTEXT 256B
BLOB, TEXT 64K
MEDIUMBLOB, MEDIUMTEXT 16M
LONGBLOB, LONGTEXT 4G

五、事务的入门(很重要、简单)

1、数据库的事务控制
start transaction: 开启事务
rollback: 回滚事务
commit: 提交事务

2、JDBC控制事务

day16_jdbc_第8张图片

六、事务的特性(很重要、简单)

1、事务的特性:经常作为面试

原子性:指处于同一个事务中的多条语句是不可分割的。
一致性:事务必须使数据库从一个一致性状态变换到另外一个一致性状态。比如,转账,转账前两个账户余额之和为2k,转账之后也应该是2K。
隔离性:指多线程环境下,一个线程中的事务不能被其他线程中的事务打扰
持久性:事务一旦提交,就应该被永久保存起来。

2、事务隔离性专题

如果不考虑事务的隔离性,会出现以下问题:
脏读:指一个线程中的事务读取到了另外一个线程中未提交的数据。
不可重复读:指一个线程中的事务读取到了另外一个线程中提交的update的数据。
虚读:指一个线程中的事务读取到了另外一个线程中提交的insert的数据。

隔离级别:
1:READ UNCOMMITTED:脏读、不可重复读、虚读都有可能发生。
2:READ COMMITTED:防止脏读的发生,不可重复读、虚读都有可能发生。
4:REPEATABLE READ:防止脏读、不可重复读的发生,虚读有可能发生。
8:SERIALIZABLE:防止脏读、不可重复读、虚读的发生。

级别越高,数据越安全,但性能越低。

MySQL:
查看当前事务的隔离级别:SELECT @@tx_isolation;
更改事务的隔离级别:(注意:一定要在开启事务之前设定)
SET transaction isolation level 四个级别之一(单词);

回去练习:

day16_jdbc_第9张图片

JDBC中如何控制事务的隔离级别:
前提:在开启事务之前设置隔离级别。

day16_jdbc_第10张图片

设置事务的隔离级别:

Connection void setTransactionIsolation(int level);

分页

day16_jdbc_第11张图片

你可能感兴趣的:(黑马培训班,jdbc,数据库,java)