DAO多表操作的解决思路
一、分层DAO思路
虽然网上有文章表示一个表对应一个DAO并不好,但这里暂时还是尽量一个表一个DAO。这里想说的是,把DAO层细化一下。分成BDAO(底层DAO)和TDAO(顶层DAO),或说成TDAO(表级DAO)和ODAO(对象级DAO)。
1、BDAO
底层DAO主要思路就是一个表对应一个DAO,然后实现CRUD,同时还要给顶层DAO提供暴露conn连接的CUD方法(查询通常不用事务吧)。
2、TDAO
顶层DAO使用底层DAO暴露conn连接的方法,实现多表操作,从而实现事务处理的能力。
这种方法的优点是,代码优美、通俗易懂,缺点是要实现业务逻辑中的每个事务的TDAO,工作量可能会比较大。
二、执行自定义SQL语句
针对当前的DAO,提供一个自定义的方法,该方法提供一个字符串数组参数,每个元素都是一个sql语句,然后在方法体内实现事务,顺次执行字符串数组中的sql语句,成功则提交,否则回滚。
这种方法的优点是,方法简单,缺点是需要业务逻辑编程人员需要保留数据库编程人员协助提供的sql语句,从而使sql语句需要在熟悉不同领域的编程人员之间保持同步(等等)。
***
目前先想到这,以后有时间再把DAO层完善。