(菜鸟问题)关于业务逻辑和数据访问分层的问题?
我有个增加计划的业务,里面涉及10几个SQL语句(可能还更多),这样如果把数据访问单独放一层不得麻烦死了?
请问大家如何处理?
我以前做都是业务逻辑和数据访问都放在一起,听大虾们说最好分开,可我觉得分开好麻烦啊,程序量倍增,很多时候那些SQL语句很简单(SELECT COUNT(*) FROM TABLE)
另外大家推荐一下,用ibatis还是用spring jdbctemplate合适?(因为我对SQL比较熟悉,Hibernate就算了)
[解决办法]
[解决办法]
简单的就用ibatis,很方便。
按你的描述,可能还没真正感受分层的意义。
就比如你们公司市场部的人可能说的钱有10W,100W等数据,但真钱不会是他们操作的吧?真和钱打交道的是财务部,同理软件的业务逻辑只管你的业务就够了,还涉及数据操作干嘛?业务再多和数据操作层有什么关系?维护起来你都知道是业务逻辑不对还是数据操作出问题
[解决办法]
sql熟悉 建议使用Itatis 轻量级、灵活性好
[解决办法]
虽然程序量比较大,但便于代码的维护,如果你的业务逻辑发生改变的话,你就需要多处更改你的代码,如果你将数据层和业务层分开的话,你只要修改一处就ok了。。。。
如果嫌麻烦可以使用框架啊
hibernate 增删改查对应的方法 save,delete,update,query
[解决办法]
[解决办法]
[解决办法]
其实dao你可以写个通用的,其他就是写service多一点
- Java code
ublic interface BaseDAO<T, K extends Serializable> extends DAO { /** * 加载实体 */ public T loadEntity(Class<T> clasz, K id) throws Exception; /** * 加载实体 */ public T getEntity(Class<T> clasz, K id) throws Exception; /** * 删除实体 */
[解决办法]
[解决办法]
[解决办法]
照你原来的写,虽然有十个sql,你可以在一个方法实现。直接写个for循环,循环执行那个保存方法就好了。
[解决办法]
[解决办法]
那你的很多SQL有没有什么关联,要不要事务的
[解决办法]
一个save就涉及10几个SQL呢 ?!!
这样的逻辑直接写在存储过程里面得了,
------解决方案--------------------
分层主要是为了 维护方便 不能为了方便全部堆在一起
写代码本来就是类似于 搞艺术么
[解决办法]
如果你那一个save真用了十几个SQL而不是你自己脑补的
就照你的方式写,真正需要分层的时候,不用别人要求,你自己就主动封装分层了。
分层是为了维护方便,逻辑清晰,代码无耦合,如果不分层照样有这个效果,那还分什么层
[解决办法]
一个save真用了十几个SQL,用存储过程效率高