zoukankan      html  css  js  c++  java
  • 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 ICompanyDAO 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 delete(String SQL, Object id)
           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 {
    ......
    后台就到这来吧!再说前台。
  • 相关阅读:
    android java.lang.IllegalStateException: Circular dependencies cannot exist in RelativeLayout
    UnsupportOperationException,使用Arrays.asLisvt()报错原因
    android ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hi
    android Caused by: libcore.io.GaiException: getaddrinfo failed: EAI_NODATA (No address associated wi
    android The specified child already has a parent. You must call removeView() on the child's parent f
    python-install-package-C++编译器问题---05
    python-install-package-C++编译器问题---04-微软官网
    python-install-package-C++编译器问题---03
    python-install-package-C++编译器问题---02
    python-install-package-C++编译器问题---01
  • 原文地址:https://www.cnblogs.com/Javame/p/3487754.html
Copyright © 2011-2022 走看看