|
|
15分 |
BaseDAO一般是提供从数据库 增加、删除、修改记录、查询所有记录、查询符合某个条件记录、取得某条记录等方法的底层数据操作自定义类。
由于我们可能操作多个数据库表,这样就需要为每个表提供一个操作他的类 xxDAO, 这些DAO继承BaseDAO 就可以省略很多重复代码(从数据库 增加、删除、修改记录、查询所有记录、查询符合某个条件记录、取得某条记录等方法的代码)… 然后因为DAO 与 Service分开 是因为, DAO是直接针对数据库进行操作的, 而Service是进行业务操作的,处理业务逻辑之用。 其实现在市面上流行的 MVC模式 ,你可以去好好理解一下。 这样开发的好处就是层次清晰,使项目的扩展性更好… |
首先谢谢你的回复,就是说Service 里面除了调用dao来完成数据的持久化之外,可能还会有其他的操作,我举个例子不知道说的对不对,就比如说我先在有个 ajax请求需要得到用户列表(要得到json数据) 那么我的dao调用方法得到的是一个list集合,而service中出了调用dao这一层得到list集合后,还应该做相应的数据处理(转化成json数据),同理其它的一些的业务逻辑的操作,或者针对 dto 或者事务的处理都应该放在service 这一层吗?? 我目前对业务逻辑的认识比较模糊
|
|
有那么一丝道理…但是一般查询没有什么大的业务逻辑,可以直接用action 或者 controller来处理。 一般复杂的都在添删改里面… 总之 各有各用~
|
|
事物处理的确都应放到service里面。 业务逻辑很模糊很正常,等你工作时间长了,接触到的东西多了就会明白。 |
|
很明显的三层阿,显示层,业务层,数据访问层,
|
|
10分 |
service,例如银行一个转账的模式,你这边转出需要减金额,那边进账需要加金额,但是这个业务操作必须为一个操作体,所以一般就要在业务层声明一个事务去提交,.而dao层只会给你提供与数据库交互的功能
|
恩恩,你举这个例子我真的有点感觉了,还是掌握的东西太少了
|
|
说白了 dao层什么都不用关心 他只负责select update delete insert
具体什么时候做这些操作 怎么做这些操作 都由Service来处理。 打个比方,dao就是士兵,Service就是将军。一切听指挥,只做你该做的。 |
|
这三层主要是便于管理代码吧 时间长了就明白了
|
|
dao层只做数据库交换的工作。
service层做业务相关处理。 分开就是为了让代码更清晰。 逻辑出问题就在service找问题,数据库,sql有问题就在dao层找问题 |
|
不要钻进牛角,这只是一种分层结构,类似公安局,司法院,民政府,每个部门负责一个模块,也可以放一起,但是很乱;而mvc模式,dao层只用来处理与数据库的交互,service我只处理分发请求,求你给我什么请求,我去找对应处理你这个请求的方法,大家各负责一个模块;
|
|
15分 |
1你的问题可以拆分三个问题
一.继承问题。例如UserDaoImpl 等等只要继承BaseDaoHiber 这个楼上已经说了很多了。节省代码。(我就不详细说了) 2.面向接口编程 解耦合,方便维护,扩展.一种规范约束方便团队开发 范例:JAVA的JDBC,sun公司只写一个规范出来。你们数据库厂商自已去实现驱动。(规范约束) 3.mvc分层模式 区分层次的目的即为了“高内聚,低耦合”的思想。 有利于标准化,分层开发是为了把代码区分开来。放在一起多乱啊。也有一部分是为省代码的原因 补充一个例子:例如业务是转帐100块。手续费2块。这是业务问题。在SERVICE层写。从A去掉100块。B增加100百。去掉A的2元手续费。这是一个原子性的所以事务必须放在SERVICE. 楼主问题解决. 可以百度三层架构,面向接口编程,继承。问题解决 |
恩恩,很详细,感觉有点方向了,谢谢各位的指导,以后有问题大家麻烦解答下
|