Service层写业务逻辑,dao层是数据库操作的最小单位,那事务管理应该放在service层对吧?

whereismymindM whereismymindM 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
有个疑惑,如果不用框架开发,操作数据库只用jdbc,那么获取connection是不是只能写在service方法里?比如一个公司新进一名员工,那么员工表里新增一条记录, 部门表里的人员数量字段数值要加一,这涉及到两张表的操作,员工表对应YuanGongDaoImpl,部门表对应BuMenDaoImpl.
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层的一些了解知识,帮助填充对这部分比较空白的开发者们。

傲气king

MyBatis框架示例项目:数据访问操作指南

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。Mapper接口与XML映射是MyBatis框架中用于实现数据库操作的核心部分。

verbaWP

Service层和DAO层解析

dao完成连接数据库修改删除添加等的实现细节,例如sql语句是怎么写的,怎么把对象放入数据库的。service层是面向功能的,一个个功能模块比如说银行登记并完成一次存款,UI要把请求给service层,然后service曾将这一个case分解成许多步骤调用底层的实现完成这次存款,dao就是下面那层。

poxiao1985

自动生成MVC中的Service层、Dao层及Model层代码

http://blog.csdn.net/u010137431/article/details/46595487该博客中的代码

RED-GO

Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合

Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。 一个良好的框架可以让开发人员减轻重新建立解决复杂问题方案的负担和精力;它可以被扩展以进行内部的定制化;并且有强大的用户社区来支持它。框架通常能很好的解决一个问题。然而,你的应用是分层的,可能每一个层都需要各自的框架。仅仅解决UI问题并不意味着你能够很好的将业务逻辑和持久性逻辑和UI 组件很好的耦合。

qiaodiqiudejiahuo
评论 7
收藏 已收藏
分享
返回顶部
whereismymindM
Web 开发 81,108 成员 341,721 内容