1,用户分页的参数类
package hwt.Utils;
import java.util.Map;
public class PageEntity {
private Integer page; //目前是第几页
private Integer size; //每页大小
private Map params; //传入的参数
private String orderColumn;
private String orderTurn = "ASC";
public String getOrderColumn() {
return orderColumn;
}
public void setOrderColumn(String orderColumn) {
this.orderColumn = orderColumn;
}
public String getOrderTurn() {
return orderTurn;
}
public void setOrderTurn(String orderTurn) {
this.orderTurn = orderTurn;
}
public Integer getPage() {
return page;
}
public void setPage(Integer page) {
this.page = page;
}
public Integer getSize() {
return size;
}
public void setSize(Integer size) {
this.size = size;
}
public Map getParams() {
return params;
}
public void setParams(Map params) {
this.params = params;
}
}
2,分页结果类
package hwt.Utils;
import java.util.ArrayList;
import java.util.List;
/**
* 分页结果
* @author hwt
*
*/
public class PagingResult<T> {
//当前页
private int currentPage;
//总共记录条数
private int totalSize;
//结果集
private List<T> resultList = new ArrayList<T>();
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
public int getTotalSize() {
return totalSize;
}
public void setTotalSize(int totalSize) {
this.totalSize = totalSize;
}
public List<T> getResultList() {
return resultList;
}
public void setResultList(List<T> resultList) {
this.resultList = resultList;
}
}
3,BaseDAO接口
package hwt.DAO;
import hwt.Utils.PageEntity;
import hwt.Utils.PagingResult;
import java.io.Serializable;
import java.util.List;
import java.util.Map;
/**
* baseDAO
* @author hwt
*
*/
public interface BaseDAO<T,PK extends Serializable> {
/**
* 新增实体
* @param entity
* @return 影响记录条数
*/
public abstract int insert(T entity);
/**
* 修改一个实体对象(UPDATE一条记录)
* @param entity 实体对象
* @return 修改的对象个数,正常情况=1
*/
public abstract int update(T entity);
/**
* 修改符合条件的记录
* <p>此方法特别适合于一次性把多条记录的某些字段值设置为新值(定值)的情况,比如修改符合条件的记录的状态字段</p>
* <p>此方法的另一个用途是把一条记录的个别字段的值修改为新值(定值),此时要把条件设置为该记录的主键</p>
* @param param 用于产生SQL的参数值,包括WHERE条件、目标字段和新值等
* @return 修改的记录个数,用于判断修改是否成功
*/
public abstract int updateParam(Map param);
/**
* 按主键删除记录
* @param primaryKey 主键对象
* @return 删除的对象个数,正常情况=1
*/
public abstract int delete(PK primaryKey);
/**
* 删除符合条件的记录
* <p><strong>此方法一定要慎用,如果条件设置不当,可能会删除有用的记录!</strong></p>
* @param param 用于产生SQL的参数值,包括WHERE条件(其他参数内容不起作用)
* @return
*/
public abstract int deleteParam(Map param);
/**
* 清空表,比delete具有更高的效率,而且是从数据库中物理删除(delete是逻辑删除,被删除的记录依然占有空间)
* <p><strong>此方法一定要慎用!</strong></p>
* @return
*/
public abstract int truncate();
/**
* 查询整表总记录数
* @return 整表总记录数
*/
public abstract int count();
/**
* 查询符合条件的记录数
* @param param 查询条件参数,包括WHERE条件(其他参数内容不起作用)。此参数设置为nullÿ