通常在业务代码里面会进行dao的操作,dao层会提供正删改查等api,如何减少重复的增删改查,使得代码更简洁
有图为证:
1.首先说明IBaseDAO,这个接口主要是定义一些常用的增删改查方法
package com.bj58.xxzl.hunter.configure.web.dao;
import com.bj58.xxzl.hunter.configure.web.dao.entity.Field;
import java.io.Serializable;
import java.util.Collection;
import java.util.List;
public interface IBaseDAO<T,PK extends Serializable> {
/**
* 获取实体
* @param id
* @return
* @throws Exception
*/
public T get(PK id) throws Exception;
/**
* 更新实体
* @param entity
* @throws Exception
*/
public void update(T entity) throws Exception;
/**
* 获取实体List
* @param arr
* @return
* @throws Exception
*/
public List<T> getList(PK[] arr) throws Exception;
/**
* 向数据库中增加实体
* @param entity
* @return TODO
* @throws Exception
*/
public PK save(T entity) throws Exception;
/**
* 根据主键删除数据库实体
* @param id
* @throws Exception
*/
public void delete(PK id) throws Exception;
/**
* 计算总量
* @param condition
* @return
* @throws Exception
*/
public int count(String condition) throws Exception;
/**
* 按条件分页查询
* @param condition
* @param columns
* @param page
* @param pageSize
* @param orderBy
* @return
* @throws Exception
*/
public List<T> getListByPage(String condition, String columns, int page,
int pageSize, String orderBy) throws Exception;
/**
* 按照条件分页查询
* @param condition
* @param page
* @param pageSize
* @param orderColum
* @param isAsc
* @return
*/
public List<T> getListByPage(String condition, int page,
int pageSize, String orderColum, boolean isAsc) throws Exception;
/**
* 加载全部数据(仅在数据量比较小的情况下使用)
* @param condition
* @return
* @throws Exception
*/
public List<T> loadAll(String condition) throws Exception;
/**
* 加载全部数据(仅在数据量比较小的情况下使用)
* @return
* @throws Exception
*/
public List<T> loadAll() throws Exception