把CRUD这些通用的操作放在这个DAO里面,然后每个模块的DAO继承此通用DAO就可以了。像这样 IDAO.javapackage org.xiong.demo.dao;import java.util.List;public interface IDAO<T, K> { public boolean doInsert(T vo) throws Exception; public boolean doUpdate(T vo) throws Exception; public boolean doDelete(K id) throws Exception; public T findById(K id) throws Exception; public List<T> findAll(String keyword) throws Exception; public List<T> findAll(String keyword, int currentPage, int lineSize) throws Exception; public long getAllCount(String keyword) throws Exception;}INewsDao.javapackage org.xiong.demo.dao;import java.util.List;import org.xiong.demo.vo.News;public interface INewsDao extends IDAO<News, Integer> { public List<News> findAllByLockflag(String keyword, int currentPage, int lineSize, int lockflag) throws Exception; public long getAllCountByLockflag(String keyword, int lockflag) throws Exception; }
你们不提倡写个通用的吗?
找个老手写个通用的,都不用人去管DAO!
分别配置相应的配置
IDAO.javapackage org.xiong.demo.dao;import java.util.List;public interface IDAO<T, K>
{
public boolean doInsert(T vo) throws Exception; public boolean doUpdate(T vo) throws Exception; public boolean doDelete(K id) throws Exception; public T findById(K id) throws Exception; public List<T> findAll(String keyword) throws Exception; public List<T> findAll(String keyword, int currentPage, int lineSize)
throws Exception; public long getAllCount(String keyword) throws Exception;}INewsDao.javapackage org.xiong.demo.dao;import java.util.List;import org.xiong.demo.vo.News;public interface INewsDao extends IDAO<News, Integer>
{
public List<News> findAllByLockflag(String keyword, int currentPage, int lineSize,
int lockflag) throws Exception; public long getAllCountByLockflag(String keyword, int lockflag) throws Exception;
}
你们的DAO里面有很多复杂的逻辑、奇怪的方法吗??
通用的DAO就写些普通的操作,具体的逻辑到Service层写!
如果你硬是要扩展DAO,就自己去继承通用DAO,这样就灵活多了!
还想问下 你的DAO要各自协调什么??
至于你的一个实体对应一个DAO的问题,你可以把实体当作参数传入通用DAO,用通用DAO来解析!
小弟不才,想问下有团队经验的人的开发习惯。
首先说下,我确实没多少团队开发经验!!
但是我想请问下楼主,能不能给我举个除了增删改查、执行sql之外的特殊方法的例子给我!!
谢谢了!
insert
delete
update
get
list
getTotalBasicDao<T> implements Dao<T>
//一些protected方法UserDao extends Dao<User>
//DAO的方法不够就扩展UserDaoImpl extends BasicDao<User> implements UserDao
我的个天啊..
你到底有没有考虑通用方法啊!!
哪个查询不是带入一条sql啊,拼装sql你交给service或者action去拼,DAO只管查询跟将结果封装成你想要的对象不就行了么..
难不成你们以前都是一个实体对应一个DAO吗??