Service层写业务逻辑,dao层是数据库操作的最小单位,那事务管理应该放在service层对吧?
Service层的代码是不是得这样写:
class xxxServiceImpl{
private YuanGongDao ygd = 省略;
privaet BuMenDao bmd = 省略;
void ZengJiaYuanGong(YuanGong yg){
// 获取连接
Connection con = 省略;
// 开启事务
con.setAutoCommit(false);
ygd.insert(yg);//新增员工记录
bmd.update(String sql);//部门人员数量加一
con.commit();
con.close();
}
}
但是上面得con没传入 ygd.insert(yg)和bmd.update(String sql),那么这两个方法也不能对数据库操作啊,假如这两个方法里各自new 一个新得con,那这个事务也操作不起来啊,如果是这样的方法ygd.insert(yg,con)和bmd.update(String sql,con),好像也没人这样设计!
我看网上很多教程里面,讲数据库操作,都是把connection或者sqlsession等等设计成在在dao层里获取,当然那些例子都只是对数据库增删改查,简单的操作,我是想不明白,如果要用到事务,到底要怎么设计啊,不考虑使用框架!
相关推荐
DAO层_Service层_Controller层、View层介绍
DAO层_Service层_Controller层、View层的一些了解知识,帮助填充对这部分比较空白的开发者们。
MyBatis框架示例项目:数据访问操作指南
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。Mapper接口与XML映射是MyBatis框架中用于实现数据库操作的核心部分。
Service层和DAO层解析
dao完成连接数据库修改删除添加等的实现细节,例如sql语句是怎么写的,怎么把对象放入数据库的。service层是面向功能的,一个个功能模块比如说银行登记并完成一次存款,UI要把请求给service层,然后service曾将这一个case分解成许多步骤调用底层的实现完成这次存款,dao就是下面那层。
自动生成MVC中的Service层、Dao层及Model层代码
http://blog.csdn.net/u010137431/article/details/46595487该博客中的代码
Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合
Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。 一个良好的框架可以让开发人员减轻重新建立解决复杂问题方案的负担和精力;它可以被扩展以进行内部的定制化;并且有强大的用户社区来支持它。框架通常能很好的解决一个问题。然而,你的应用是分层的,可能每一个层都需要各自的框架。仅仅解决UI问题并不意味着你能够很好的将业务逻辑和持久性逻辑和UI 组件很好的耦合。


Web 开发
