为什么这样设计Dao?

LoginOut LoginOut 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

public interface BaseDAO {

public void save(Object obj);
public void update(Object obj);
public void saveOrUpdate(Object obj);
public void delete(Object obj) ;
public void executeHQL(String hql,Object obj);
public Object findById(Class clazz,Integer id);

/**
*
* @param shortClassName entity bean的类名,省去包名
* @param id
* @return
*/

public Object findById(String shortClassName,Integer id);
public List findAll(String shortClassName);
public List findByParam(String hql,Object obj);
public int calculateAmount(final Class clazz,final Map conditions);

/**
* 该方法应用于查询分页
*
* @param clazz 待查询的类
* @param conditions 条件组合
* @param orderType 排序方式
* @param orderField 按哪个属性进行排序
* @param start 开始位置
* @param pageSize 返回的页大小
* @return
*/
public List filter(final Class clazz,final Map conditions, final String orderType,final String orderField,final int start,final int pageSize);

}




public interface UserDAO extends BaseDAO{


public static final String FIND_USER_BY_LOGIN_NAME = " from User u where u.loginName=?";

public static final String DEL_USER_BY_ID = " delete from User u where u.id=?";

public void addUser(User user) ;


public void updateUser(User user) ;


public void delUser(User user) ;


public void delUserById(final int userid);


public User findUserById(int id);


public User findUserByLoginName(String loginName);

}








public class UserDAOHibernate extends BaseDAOHibernate implements UserDAO{

public void addUser(User user) {
save(user);
}

public void updateUser(User user) {
update(user);
}

public void delUser(User user) {
delete(user);
}

public void delUserById(final int userid){

getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session s) throws HibernateException, SQLException {
Query query = s.createQuery(DEL_USER_BY_ID);
query.setInteger(0, userid);
query.executeUpdate();
return null;
}
});
}

public User findUserById(int id){
return (User)findById("User",id);
}


public User findUserByLoginName(String loginName){
List list = this.getHibernateTemplate().find(FIND_USER_BY_LOGIN_NAME, loginName);
if (list.size()>0)
return (User)list.get(0);
return null;
}

}



BaseDAO 有什么用处?
不用BaseDAO 好像也可以啊
...全文

相关推荐

评论 38
收藏 已收藏
分享
返回顶部
LoginOut
Java EE 67,535 成员 225,843 内容