Jdbc学习笔记——第三天

Jdbc学习打卡

  • Jdbc学习笔记---第三天
  • Jdbc笔记 第三天
    • 一.复习
    • 二. DAO (data access object 数据访问对象)
      • 1. 作用
      • 2. 命名规范
      • 3. 好处
    • 三. Service( 业务层 )
      • 1. 作用:
      • 2. 定义规则
      • 3. Jdbc中的事务控制
        • 1) jdbc中默认的事务提交策略为 “一条命令提交一次” --- 自动提交
        • 2) 手动提交 API
        • 3) 代码结构
      • 4. 给service程序添加事务控制代码
      • 5. 使用ThreadLocal对象解决service层事务控制问题
        • 1)ThreadLocal --- 线程局部变量
        • 2)使用API
        • 3) 作用
        • 4)使用ThreadLocal改写JdbcUtil
        • 5) 理论上,conn应该在线程结束时被关闭,实际开发中,线程结束位置不固定,一般会在事务结束时就关闭连接,关闭同时切记解除conn和当前线程的绑定关系( dao层函数千万不能关闭连接 )
        • 6) 业务层开发步骤

Jdbc学习笔记—第三天

Jdbc笔记 第三天

一.复习

Jdbc学习笔记——第三天_第1张图片

二. DAO (data access object 数据访问对象)

1. 作用

完成对数据库里一张表所有数据访问操作(增删改查)

2. 命名规范

  1. 为每一张表提供一个与之对应的DAO程序

  2. 定义DAO接口,命名时 “表名+DAO"

为接口提供实现类,命名时 “接口名+Impl"

Jdbc学习笔记——第三天_第2张图片

3. 好处

对调用者屏蔽底层数据库的差异

三. Service( 业务层 )

1. 作用:

为了完成用户的一个具体的业务需求,需要定义函数来实现具体的业务过程(一定会落实到具体的数据库操

作上)

2. 定义规则

  1. 每一个业务功能定义一个函数

  2. 程序命名规范 ” xxxx+Service“ — 接口 ; 实现类:”接口名+Impl“

3. Jdbc中的事务控制

1) jdbc中默认的事务提交策略为 “一条命令提交一次” — 自动提交

2) 手动提交 API

​ ① conn.setAutoCommit( boolean ); true–自动提交 false–手动提交

​ — 一经设置,永久生效(在当前conn的生命周期中,一直有效)

​ ② conn.commit(); conn.rollback();

3) 代码结构

  try{
     
     conn.setAutoCommit(false);
     update   fromA
     if( xxxxx )  throw new RuntimeException(....);
     update   toA
     conn.commit();
  }catch(Exception e){
     
      conn.rollback();
      throw new RuntimeException(....)}

4. 给service程序添加事务控制代码

  1. 目标:为了事务控制,需要在一个事务内部的不同代码间,使用一个连接对象
  2. 解决 : 使用参数传递的方式解决(将service层的连接对象传给dao层函数)
    Jdbc学习笔记——第三天_第3张图片

5. 使用ThreadLocal对象解决service层事务控制问题

1)ThreadLocal — 线程局部变量

​ 一个ThreadLocal对象可以为每一个线程保存一个独占数据

2)使用API

​ ① 创建对象 ThreadLocal<独占数据的类型> tol = new ThreadLocal<…> ();

​ ② 存数据 tol.set( 数据 );

​ ③ 取数据 tol.get() —> 独占数据

​ ④ 解除与当前线程的绑定 tol.remove()

3) 作用

​ ① wei一个线程锁定一个数据, 使得我们在线程的任意代码组成部分里都可以获取到这个数据(一个数据)

​ ② 为不同的线程锁定不同的数据

4)使用ThreadLocal改写JdbcUtil

Jdbc学习笔记——第三天_第4张图片

5) 理论上,conn应该在线程结束时被关闭,实际开发中,线程结束位置不固定,一般会在事务结束时就关闭连接,关闭同时切记解除conn和当前线程的绑定关系( dao层函数千万不能关闭连接 )

Jdbc学习笔记——第三天_第5张图片
Jdbc学习笔记——第三天_第6张图片

6) 业务层开发步骤

​ ① 获取数据库连接,并且控制提交策略为手动提交

​ ② 完成业务功能( 数据校验 , 数据库的访问操作 — 需要dao的对象 )

​ ③ 提交 或者 回滚

​ ④ 释放资源

Jdbc学习笔记——第三天_第7张图片

你可能感兴趣的:(Jdbc,Java连接数据库,Jdbc,Java连接数据库)