JDBC进阶

来源:互联网 发布:高仿mcm怎么在淘宝买 编辑:程序博客网 时间:2024/05/01 15:01

说完JDBC基础,我们再来看看statement和preparedStatement两者的比较,rusult结果集,JDBC对于事物的管理,批量添加,分页查询,DAO,Bean这些好玩的东西

1.Statement和PreparedStatement

1.1两者的联系:

都能执行SQL语句
preparedStatement继承自Statement

1.2.它们的区别

Statement适合执行静态(无条件)SQL

这里写图片描述

PreparedStatement适合执行动态(有条件)SQL

这里写图片描述

除此之外PreparedStatement可以避免注入

这里写图片描述

2.RusultSet结果集

1.RusultSet结果集的指针

这里写图片描述

2.ResultSetMetaData

结果集元数据:对结果集进行描述(概括)的数据,包含:多少列,列名,列的类型

3.JDBC支持的DATE类型

java.sql.Date 年月日
java.sql.Time 时分秒
java.sql.Timestamp 完整日期

上述日期都是java.util.Date的子类

4.事物管理

JDBC会自动管理事务(一个业务只需执行一次DML时,采用自动管理事务),每次调用executeUpdate()时,它会自动commit

如何手动管理事物:(一个业务需要执行多次DML时,采用手动管理事务)
取消自动提交:conn.setAutoCommit(false)
采用手动提交:conn.commit()
异常时要回滚:conn.rollback()

什么是事务:
原子性:事务是一个完整的过程,要么都成功,要么都失败.
一致性:事务前后的数据要保持一致,即收支平衡.
隔离性:事务访问过程中的数据,不能被别人访问.
持久性:事务一旦完成,就永久生效.

5.批量添加

这里写图片描述

6.分页查询的两种思路

思路1:假分页(内存分页)

第1次查询就查出所有数据,然后将数据存入内存(List)
第N次查询则从内存(List)中获取某一页的数据
特点:第1次查询很慢,以后查询快,耗内存

这种方式只适合数据量很小的项目

思路2:真分页(物理分页)

每次查询都从数据库中直接查询出一页数据
特点:每次查询速度都较快,不耗内存

这种方式适合所有的项目

7.JDBCDAO

这里写图片描述

注:数据(实体)要遵循bean规范

8.什么是javaBean

满足如下规范的类:

该类必须有包
该类必须有无参构造器
该类必须实现序列化接口
该类通常有get和set方法