数据库开发四:JDBC数据库开发进阶三(JDBC工具类-JdbcUtils)

本文介绍了如何在Service层处理事务,强调Dao层不应涉及业务,只负责数据库访问。通过理想代码结构展示Service层的事务管理,并提供c3p0-config.xml配置文件示例,便于读者下载源码学习。
摘要由CSDN通过智能技术生成

JdbcUtils
问题情境事务的处理
Dao层:不应涉及业务,只对数据库进行访问
Service层:处理逻辑业务(不应该出现数据库相关东西比如Connection)

Dao层处理事务

public void xxx(){
   
        Connection con = null;
    try{
   
        con = JdbcUtils.getConnection();
        con.setAutoCommitted(false);
        QueryRunner qr = new QueryRunner();
        String sql = "";
        Object[]params=...;
        qr.update(con,sql,params);
        String sql = "";
        Object[]params=...;
        qr.update(con,sql,params);
        con.commit();
    }catch(Exception e){
   
        try{
   
            con.close();
        }catch(Exception e){
   
            con.rollback();
        }
    }
}

Service层处理事务

public class xxxService(){
   
   private xxxDao dao = new xxxDao();
     public void serviceMethod(){
   
        Connection con =  null;
           try{
   
               con = JdbcUtils.getConnection();
               con.setAutoCommit("false");
               dao.daoMethod1(...);
               dao.daoMethod2(...);
               con.commit();
           }catch(Exception e){
   
              try{
   
                     con.close();
                 }catch(Exception e){
   
                     con.rollback();
                 }
           }
       }
}

理想代码结构如下

public class  xxxService(){
   
    private xxxDao dao = new xxxDao();

    public void serviceMethod(){
   
        try{
   
            JdbcUtils.beginTransaction();
            d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值