CRM项目经验总结-从DAO层到链接数据池

时间:2021-07-31 07:05:51
CRM项目经验总结-从DAO层到链接数据池
IDAO接口 定义项目中所有板块相似功能 也是整个项目的根接口 
public interface IDAO {
 /**
  * 新增数据 @param SQL sql查询语句  @param params 参数数组 @wonter
  */
 public int insert(final String SQL, final Object[] params)
   throws CRMDBConnException, CRMSQLException;
 /**
  * 查询 要求传入查询表对应的BeanCalss @param SQL sql查询语句 @param clazz  查询表对应的BeanCalss @author wonter 
  */
 public List findAll(final String SQL, Class clazz)
   throws CRMDBConnException, CRMSQLException;
 /**
  * @param SQL sql更新语句  @param bean 更新表对应的bean实例  @author wonter
  */
 public int update(final String SQL, final Object bean)
   throws CRMDBConnException, CRMSQLException;
 
 /**
  *  删除单条数据 @param SQL  sql删除语句  @param id 主键编号 @author Lyee
  */
 public int delete(final String SQL, final Object id)
   throws CRMDBConnException, CRMSQLException;
}
ICompanyDAO接口继承IDAO 空接口 公司板块这是程序员开始着手的地方
public interface IOperateDAO extends IDAO {
 
}
DAOAdapter类 适配器 通过包装一个需要适配的对象,把原接口IDAO 转换成目标接口。
public abstract class DAOAdapter {
 /**
  * 构造方法
  */
 public DAOAdapter() {
  // TODO Auto-generated constructor stub
 }
 /**
  * 查询 要求传入查询表对应的BeanCalss @param SQL sql查询语句 @param clazz  查询表对应的BeanCalss @author wonter 
  */ 
 public List findAll(final String SQL, Class clazz)
   throws CRMDBConnException, CRMSQLException {
  return null;
 }
 /**
  * 新增数据 @param SQL sql查询语句  @param params 参数数组 @wonter
  */ 
 public int insert(final String SQL, final Object[] params)
   throws CRMDBConnException, CRMSQLException {
  return 0;
 }
}
CompanyDAO类 具体实现类 每一个DAO可以实现一个DAOAdapter适配器,也可以直接实现I**DAO。这看实现是否完全。 如果实现不全面,直接实现适配器继承接口。
public class CompanyDAO extends DAOAdapter implements ICompanyDAO {
 /**
  * CompanyDAOde的空构造 @author wonter
  */
 public CompanyDAO() {
}
 /**
  * 删除单条数据
  * @param SQL
  * sql删除语句
  * @param id
  * 主键编号
  */
 public int delete(String SQL, Object id) throws CRMDBConnException,
   CRMSQLException {
  try {
   return DAOUtil.getInstance().delete(SQL, id);
 
  } catch (Exception e) {
 
   e.printStackTrace();
  }
  return 0;
 }
}
DAOUtil类 工具类 用于连接数据库
public class DAOUtil {  
 private DAOUtil() {
 }
/**
  * 获得DAOUtil的实例
  * @return 返回 DAOUtil实例
  */
public static DAOUtil getInstance() throws InstantiationException, IllegalAccessException {
  return (DAOUtil) DAOUtil.class.newInstance() ;
 } 
 /**
  * 删除单条数据
  * @param SQL
  * sql删除语句
  * @param id
  * 主键编号
  */
 public int delete(final String SQL, final Object id)
   throws CRMDBConnException, CRMSQLException {
  int flag = -1;
  Object[] params = { id };
  QueryRunner qr = CRMQueryRunner.getInstance();
  try {
   flag = qr.update(SQL, params);
 
  } catch (Exception e) {
   throw new CRMSQLException("SQl Execute Exception", e);
  }
  return flag;
 }
}
CRMQueryRunner类 数据连接 单例设计模式
public final class CRMQueryRunner extends QueryRunner {
......
后台就到这来吧!再说前台。