Day42

  1. 用类封装数据(grade举例)
  2. properties配置文件获取驱动,url,user,password读取sql注入问题
  3. 综合案例(提及事务有关操作)
    • [x] 1.导包依赖包
    • [x] 2.工具类
    • [x] 3.pojo

    • 放封装

    • [x] 4.Dao(数据库相关操作)

    • AccountDao接口

      • 增删改查 根据卡号,根据用户名查询
    • 实现类,实现接口

      • 连接,预编译...
      • 删除里面加入事务管理 关闭自动提交事务,手动提交出异常 回滚,无异常 提交;
    • [ ] service包(写业务) 父类引用指向子类 多态

    • 添加账户

      • 用户名必须存在 查询数据库,有返回结果代表存在 存在不能再添加
      • 必须设置密码 不为空,不能传空字符串
    • 转账

      • 参数 from从哪个人身上转出去 to转到谁身上 money转多少钱
      • 首先 from和to必须存在,根据用户名查询就可以了
      • 用户余额是否足够
      • 一方扣钱,一方加钱
      • 写更新方法 password money 根据用户名更新
    • [ ] test(测试)

    • 测试添加

关于事务

按照单一职责来说需要写在DAO中

但是业务中会执行多次DAO,并且异常可能发生在service中,也就是说DAO无法知道发生异常了

如果DAO不知道发生异常,就不回滚事务

而且下面还有更多的DAO操作,他们需要在一个事务中

我们发现,如果把事务写在DAO中,再一个业务中多次调用DAO的时候会产生多个事务,会导致业务结果不一致

按照我们的需求,多个DAO操作需要在一个事务中,发现需要在DAO操作之前开启事务,在执行之后提交事务,那就意为着我们需要把事务代码写在service中

这样就打破了单一职责要求

如何解决?未完待续...

idea注释//TODO,高亮,快捷键alt+6快速定位

  1. 加入依赖包lib
  2. 写配置文件properties
  3. 编写工具类,工具类读取配置文件,获得连接,关闭资源
  4. 写接口,写接口实现类(pojo)
  5. 写服务,要实现的业务(service)
  6. 写测试类,开始测试
上一篇:8月26日


下一篇:mybatis 插入多数据