我有个增加计划的业务,里面涉及10几个SQL语句(可能还更多),这样如果把数据访问单独放一层不得麻烦死了?请问大家如何处理?我以前做都是业务逻辑和数据访问都放在一起,听大虾们说最好分开,可我觉得分开好麻烦啊,程序量倍增,很多时候那些SQL语句很简单(SELECT COUNT(*) FROM TABLE)另外大家推荐一下,用ibatis还是用spring jdbctemplate合适?(因为我对SQL比较熟悉,Hibernate就算了)

解决方案 »

  1.   

    简单的就用ibatis,很方便。按你的描述,可能还没真正感受分层的意义。就比如你们公司市场部的人可能说的钱有10W,100W等数据,但真钱不会是他们操作的吧?真和钱打交道的是财务部,同理软件的业务逻辑只管你的业务就够了,还涉及数据操作干嘛?业务再多和数据操作层有什么关系?维护起来你都知道是业务逻辑不对还是数据操作出问题
      

  2.   

    sql熟悉 建议使用Itatis 轻量级、灵活性好
      

  3.   

    我的意思是:分开的话那我一个业务处理涉及10几个SQL,是不是要写10几个DAO接口函数啊??而且这仅仅是一个增加计划的业务,还有很多业务涉及的SQL可能还更多。(不知道这样问对不对!菜鸟多多包涵)
      

  4.   

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

  5.   

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

  6.   

    MVC 框架吧ibatis,但楼主应该学学hibernate的
      

  7.   

    如果你10几个SQL的业务需要在同一个事务中的话,,可以写在一个dao里面。。没有人规定一个Dao只能执行一个Save的SQL。。
      

  8.   

    其实dao你可以写个通用的,其他就是写service多一点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; /**
     * 删除实体
     */
      

  9.   

    楼上的就不要笑话我了,我才开始学习JAVA....
      

  10.   


    我的意思是说:一个save函数(一个事务)里面包含10几个SQL,我如果用ibatis的话是不是要在XML写10几个SQL?然后最重要的是不是要写10几个接口函数?最后把这10几个接口函数(实现了得)装配到一个save函数(一个事务)里头?问的也不知道对不对!!见谅!!
      

  11.   

    怎么个麻烦啊,数据通过DAO取出来,然后再处理
    就是把数据添加/检索/更新/删除放到DAO,业务层通过DAO获取数据,然后再进行相关的业务处理,和你直接写一样,但是这样层次分明,可以单独使用DAO层,这样方便其他业务也能使用
      

  12.   

    照你原来的写,虽然有十个sql,你可以在一个方法实现。直接写个for循环,循环执行那个保存方法就好了。
      

  13.   

    [/Quote]
    [/Quote]
    [/Quote]
    [/Quote]
    [/Quote]
    [/Quote]
    [/Quote]
      

  14.   


    我的意思是说:一个save函数(一个事务)里面包含10几个SQL,我如果用ibatis的话是不是要在XML写10几个SQL?然后最重要的是不是要写10几个接口函数?最后把这10几个接口函数(实现了得)装配到一个save函数(一个事务)里头?
      

  15.   

    那你的很多SQL有没有什么关联,要不要事务的
      

  16.   

    一个save就涉及10几个SQL呢 ?!!这样的逻辑直接写在存储过程里面得了, 
      

  17.   

    如果你那一个save真用了十几个SQL而不是你自己脑补的就照你的方式写,真正需要分层的时候,不用别人要求,你自己就主动封装分层了。分层是为了维护方便,逻辑清晰,代码无耦合,如果不分层照样有这个效果,那还分什么层
      

  18.   

    一个save真用了十几个SQL,用存储过程效率高