项目开发中基类BaseDao的实现
项目开发中基类BaseDao的实现package cn.itcast.dao;
import java.io.Serializable;
import java.util.List;
/**
* BaseDao
* @author Administrator
*
* @param <T>
*/
public interface BaseDao<T> {
/**
* 保存一个对象
*
* @param o
* @return
*/
public Serializable save(T o);
/**
* 删除一个对象
*
* @param o
*/
public void delete(T o);
/**
* 更新一个对象
*
* @param o
*/
public void update(T o);
/**
* 保存或更新对象
*
* @param o
*/
public void saveOrUpdate(T o);
/**
* 查询
*
* @param hql
* @return
*/
public List<T> find(String hql);
/**
* 查询集合
*
* @param hql
* @param param
* @return
*/
public List<T> find(String hql, Object[] param);
/**
* 查询集合
*
* @param hql
* @param param
* @return
*/
public List<T> find(String hql, List<Object> param);
/**
* 查询集合(带分页)
*
* @param hql
* @param param
* @param page
* 查询第几页
* @param rows
* 每页显示几条记录
* @return
*/
public List<T> find(String hql, Object[] param, Integer page, Integer rows);
/**
* 查询集合(带分页)
*
* @param hql
* @param param
* @param page
* @param rows
* @return
*/
public List<T> find(String hql, List<Object> param, Integer page, Integer rows);
/**
* 获得一个对象
*
* @param c
* 对象类型
* @param id
* @return Object
*/
public T get(Class<T> c, Serializable id);
/**
* 获得一个对象
*
* @param hql
* @param param
* @return Object
*/
public T get(String hql, Object[] param);
/**
* 获得一个对象
*
* @param hql
* @param param
* @return
*/
public T get(String hql, List<Object> param);
/**
* select count(*) from 类
*
* @param hql
* @return
*/
public Long count(String hql);
/**
* select count(*) from 类
*
* @param hql
* @param param
* @return
*/
public Long count(String hql, Object[] param);
/**
* select count(*) from 类
*
* @param hql
* @param param
* @return
*/
public Long count(String hql, List<Object> param);
/**
* 执行HQL语句
*
* @param hql
* @return 响应数目
*/
public Integer executeHql(String hql);
/**
* 执行HQL语句
*
* @param hql
* @param param
* @return 响应数目
*/
public Integer executeHql(String hql, Object[] param);
/**
* 执行HQL语句
*
* @param hql
* @param param
* @return
*/
public Integer executeHql(String hql, List<Object> param);
}
package cn.itcast.dao;
import java.io.Serializable;
import java.util.List;
/**
* BaseDao
* @author Administrator
*
* @param <T>
*/
public interface BaseDao<T> {
/**
* 保存一个对象
*
* @param o
* @return
*/
public Serializable save(T o);
/**
* 删除一个对象
*
* @param o
*/
public void delete(T o);
/**
* 更新一个对象
*
* @param o
*/
public void update(T o);
/**
* 保存或更新对象
*
* @param o
*/
public void saveOrUpdate(T o);
/**
* 查询
*
* @param hql
* @return
*/
public List<T> find(String hql);
/**
* 查询集合
*
* @param hql
* @param param
* @return
*/
public List<T> find(String hql, Object[] param);
/**
* 查询集合
*
* @param hql
* @param param
* @return
*/
public List<T> find(String hql, List<Object> param);
/**
* 查询集合(带分页)
*
* @param hql
* @param param
* @param page
* 查询第几页
* @param rows
* 每页显示几条记录
* @return
*/
public List<T> find(String hql, Object[] param, Integer page, Integer rows);
/**
* 查询集合(带分页)
*
* @param hql
* @param param
* @param page
* @param rows
* @return
*/
public List<T> find(String hql, List<Object> param, Integer page, Integer rows);
/**
* 获得一个对象
*
* @param c
* 对象类型
* @param id
* @return Object
*/
public T get(Class<T> c, Serializable id);
/**
* 获得一个对象
*
* @param hql
* @param param
* @return Object
*/
public T get(String hql, Object[] param);
/**
* 获得一个对象
*
* @param hql
* @param param
* @return
*/
public T get(String hql, List<Object> param);
/**
* select count(*) from 类
*
* @param hql
* @return
*/
public Long count(String hql);
/**
* select count(*) from 类
*
* @param hql
* @param param
* @return
*/
public Long count(String hql, Object[] param);
/**
* select count(*) from 类
*
* @param hql
* @param param
* @return
*/
public Long count(String hql, List<Object> param);
/**
* 执行HQL语句
*
* @param hql
* @return 响应数目
*/
public Integer executeHql(String hql);
/**
* 执行HQL语句
*
* @param hql
* @param param
* @return 响应数目
*/
public Integer executeHql(String hql, Object[] param);
/**
* 执行HQL语句
*
* @param hql
* @param param
* @return
*/
public Integer executeHql(String hql, List<Object> param);
}
package cn.itcast.dao;
import cn.itcast.entity.TEmail;
/**
* EmailDao
* @author Administrator
*
*/
public interface TEmailDao {
public TEmail Login(String LoginName,String Password);
public TEmail FindByEmail(String param);
public Integer count(String param);
public void saveOrUpdate(TEmail T);
public void save(TEmail T);
public void update(TEmail T);
public TEmail get(Integer id);
}
package cn.itcast.daoImpl;
import cn.itcast.dao.BaseDao;
import cn.itcast.dao.TEmailDao;
import cn.itcast.entity.TEmail;
/**
* EmailDao实现类调用BaseDao实现EmailDao中的方法
* @author Administrator
*
*/
public class TEmailDaoImpl implements TEmailDao {
private BaseDao<TEmail> baseDao;
public BaseDao<TEmail> getBaseDao() {
return baseDao;
}
public void setBaseDao(BaseDao<TEmail> baseDao) {
this.baseDao = baseDao;
}
public TEmail Login(String LoginName,String Password) {
String hql="From TEmail where loginName=? and password=?";
return baseDao.get(hql, new Object[]{LoginName,Password});
}
public TEmail FindByEmail(String param) {
String hql="From TEmail where email=?";
return baseDao.get(hql, new Object[]{param});
}
public Integer count(String param) {
String hql="Select count(*) From TEmail where email=?";
Long s=baseDao.count(hql, new Object[]{param});
return s.intValue();
}
public void saveOrUpdate(TEmail T){
baseDao.saveOrUpdate(T);
}
public void save(TEmail T){
baseDao.save(T);
}
public void update(TEmail T){
baseDao.update(T);
}
public TEmail get(Integer id) {
return baseDao.get(TEmail.class, id);
}
}
我都是手写dao层,累额
页:
[1]