读书人

(初学者有关问题)关于业务逻辑和数据

发布时间: 2012-01-24 23:11:54 作者: rapoo

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

我有个增加计划的业务,里面涉及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呢 ?!!

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


分层主要是为了 维护方便 不能为了方便全部堆在一起

写代码本来就是类似于 搞艺术么
[解决办法]
如果你那一个save真用了十几个SQL而不是你自己脑补的

就照你的方式写,真正需要分层的时候,不用别人要求,你自己就主动封装分层了。

分层是为了维护方便,逻辑清晰,代码无耦合,如果不分层照样有这个效果,那还分什么层
[解决办法]
一个save真用了十几个SQL,用存储过程效率高

读书人网 >Java Web开发

热点推荐