日期:2014-05-17  浏览次数:20834 次

(菜鸟问题)关于业务逻辑和数据访问分层的问题?

我有个增加计划的业务,里面涉及10几个SQL语句(可能还更多),这样如果把数据访问单独放一层不得麻烦死了?

请问大家如何处理?

我以前做都是业务逻辑和数据访问都放在一起,听大虾们说最好分开,可我觉得分开好麻烦啊,程序量倍增,很多时候那些SQL语句很简单(SELECT COUNT(*) FROM TABLE)

另外大家推荐一下,用ibatis还是用spring jdbctemplate合适?(因为我对SQL比较熟悉,Hibernate就算了)

------解决方案--------------------
引用
ibatis吧。。。比较轻量级。也简单。。适合你这种SQL比较熟悉的人。。。正好你SQL语句也多。。。

我的建议还是分层。。。四层你闲麻烦 可以写三层。。如果仅仅是执行一些SQL而业务逻辑很少,并且你闲麻烦。。也可以用两层【省去业务逻辑层】来实现计划任务。。将少量业务逻辑直接放在控制层融掉。。留一个数据层来执行与IBatis交互。。。

------解决方案--------------------
简单的就用ibatis,很方便。

按你的描述,可能还没真正感受分层的意义。

就比如你们公司市场部的人可能说的钱有10W,100W等数据,但真钱不会是他们操作的吧?真和钱打交道的是财务部,同理软件的业务逻辑只管你的业务就够了,还涉及数据操作干嘛?业务再多和数据操作层有什么关系?维护起来你都知道是业务逻辑不对还是数据操作出问题
------解决方案--------------------
sql熟悉 建议使用Itatis 轻量级、灵活性好
------解决方案--------------------
虽然程序量比较大,但便于代码的维护,如果你的业务逻辑发生改变的话,你就需要多处更改你的代码,如果你将数据层和业务层分开的话,你只要修改一处就ok了。。。。
如果嫌麻烦可以使用框架啊
hibernate 增删改查对应的方法 save,delete,update,query
------解决方案--------------------
探讨
我有个增加计划的业务,里面涉及10几个SQL语句(可能还更多),这样如果把数据访问单独放一层不得麻烦死了?

请问大家如何处理?

我以前做都是业务逻辑和数据访问都放在一起,听大虾们说最好分开,可我觉得分开好麻烦啊,程序量倍增,很多时候那些SQL语句很简单(SELECT COUNT(*) FROM TABLE)

另外大家推荐一下,用ibatis还是用spring jdbctempla……

------解决方案--------------------
探讨
引用:

虽然程序量比较大,但便于代码的维护,如果你的业务逻辑发生改变的话,你就需要多处更改你的代码,如果你将数据层和业务层分开的话,你只要修改一处就ok了。。。。
如果嫌麻烦可以使用框架啊
hibernate 增删改查对应的方法 save,delete,update,query


可是我一个save就涉及10几个SQL呢??

------解决方案--------------------
其实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;

    /**
     * 删除实体
     */

------解决方案--------------------
探讨

引用
ibatis吧。。。比较轻量级。也简单。。适合你这种SQL比较熟悉的人。。。正好你SQL语句也多。。。

我的建议还是分层。。。四层你闲麻烦 可以写三层。。如果仅仅是执行一些SQL而业务逻辑很少,并且你闲麻烦。。也可以用两层【省去业务逻辑层】来实现计划任务。。将少量业务逻辑直接放在控制层融掉。。留一个数据层来执行与IBatis交互。。。

------解决方案--------------------
探讨
我有个增加计划的业务,里面涉及10几个SQL语句(可能还更多),这样如果把数据访问单独放一层不得麻烦死了?

请问大家如何处理?

我以前做都是业务逻辑和数据访问都放在一起,听大虾们说最好分开,可我觉得分开好麻烦啊,程序量倍增,很多时候那些SQL语句很简单(SELECT COUNT(*) FROM TABLE)

另外大家推荐一下,用ibatis还是用spring jdbctempla……

------解决方案--------------------
照你原来的写,虽然有十个sql,你可以在一个方法实现。直接写个for循环,循环执行那个保存方法就好了。
------解决方案--------------------
引用
[Quote]
[Quote]
[Quote]
[Quote]
[Quote]
[Quote]
[Quote]
最近刚刚使用JdbcTemplate.

------解决方案--------------------
那你的很多SQL有没有什么关联,要不要事务的
------解决方案--------------------
一个save就涉及10几个SQL呢 ?!!

这样的逻辑直接写在存储过程里面得了,
------解决方案--------------------