美文网首页java学习
NO.52 JDBC高级编程、DAO

NO.52 JDBC高级编程、DAO

作者: smallnumber | 来源:发表于2017-08-22 22:45 被阅读0次

一.JDBC中的事务管理

1.自动管理事务

JDBC会自动管理事务

每次调用executeUpdate()时,它会自动commit

一个业务只需执行一次DML时,采用自动管理事务

2.手动管理事务

取消自动提交:conn.setAutoCommit(false)

采用手动提交:conn.commit()

异常时要回滚:conn.rollback()

一个业务需要执行多次DML时,采用手动管理事务

3.什么是事务?

满足如下规则的数据库访问叫事务

1)原子性:事务是一个完整的过程,要么都成功,要么都失败.

2)一致性:事务前后的数据要保持一致,即收支平衡.

3)隔离性:事务访问过程中的数据,不能被别人访问.

4)持久性:事务一旦完成,就永久生效.

要整体的看待事务的概念,不要割裂来理解.


二.批量添加

1.使用场景

在企业软件上线时,导入原始数据,则需要进行批量添加.

2.如何实现

批量添加数据的前提是它们的SQL一样


三.获取自动生成的主键

1.使用场景

在增加主外键对应的2张表的数据时,需要获得主表自动生成的主键.

2.如何获取

反查

insert into uservalues(seq.nextval,?,?)

select * from user whereusername=?

记住序列的值

select seq.nextval fromdual

insert into uservalues(?,?,?)

通过ps获取该值

详见案例


四.分页查询

1.假分页(内存分页)

第1次查询就查出所有数据,然后将数据存入内存(List)

第N次查询则从内存(List)中获取某一页的数据

特点:第1次查询很慢,以后查询快,耗内存

只适合数据量很小的项目

2.真分页(物理分页)

每次查询都从数据库中直接查询出一页数据

特点:每次查询速度都较快,不耗内存

适合所有的项目

3.Oracle分页SQL

select * from ( select e.*,rownum r from ( select * from emps order by empno ) e ) where r between 1 and 10

4.分页条件的计算


五.DAO

1.说明

接口、工厂类后面再讨论

2.封装的思想

3.什么是JavaBean?

满足如下规范的类:

该类必须有包

该类必须有无参构造器

该类必须实现序列化接口

该类通常有get和set方法


代码示例:为DBUtil添加回滚方法

DBUtil中回滚方法

测试代码:

批量添加108个员工,每批发送50条数据. 先增加一个部门,再给此部门增加一个员工;在增加员工时,需要使用刚刚增加的部门的ID. 查询第2页的员工数据

DAO实体类Emp:

还有许多get.set方法和toString方法未截出

DAO封装类EmpDao:

根据ID修改字段方法 根据ID查询一个员工 查询某一页的员工

测试EmpDao:

相关文章

  • NO.52 JDBC高级编程、DAO

    一.JDBC中的事务管理 1.自动管理事务 JDBC会自动管理事务 每次调用executeUpdate()时,它会...

  • JDBC编程一一jdbc高级编程(DAO模式)

    事务简介 事务(Transaction):数据库中保证交易可靠的机制 JDBC支持数据库中的事务概念 在JDBC中...

  • JDBC:Java数据库连接

    JDBC常用接口 JDBC编程步骤 执行SQL语句 管理结果集 事务管理 高级应用:分页、高级查询、高级函数使用

  • JDBC编程:JDBC高级编程

    事物处理 批量更新 返回自动主键 DAO 1,事物处理 什么是事物? 事务(Transaction):数据库中保证...

  • 五、(三)持久层框架——JDBC

    使用JDBC 使用JDBC模板 使用DAO支持类

  • JDBC DAO

    DAO: Data Access Object 使用 DAO 可以更好的实现功能的模块化,更有利于代码的维护和升级...

  • JDBC DAO

    使用 DAO模式 来对数据库做增删改查操作 DAO模式可以大概分为三个层:1.DAO层 2.服务层 3.表现层...

  • (spring)Dao

    DAO 学习dao前有数据库基础,java与数据库连接使用的是jdbc,在此前我已学习过jdbc也不再介绍jdbc...

  • 结合实际研发经验讲解spring核心模块dao

    DAO:提供了对JDBC 的支持,对JDBC进行了封装。 Spring的Dao模块是Spring框架中对应持久层的...

  • Java面试题之Spring(三)

    1.解释Spring JDBC 。Spring DAO 和Spring ORM Spring-DAO并非Sprin...

网友评论

    本文标题:NO.52 JDBC高级编程、DAO

    本文链接:https://www.haomeiwen.com/subject/ealrdxtx.html