• 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 {
    ......
    后台就到这来吧!再说前台。
  • 相关阅读:
    Matlab-9:中心差分方法解常微分算例(SOR完整版)
    Matlab-8:松弛迭代法(SOR)
    Matlab-6:解非线性方程组newton迭代法
    Matlab-5:牛顿迭代法工具箱
    javascript学习笔记--经典继承、组合继承、原型式继承、寄生继承以及寄生组合继承
    爬取微信文章代码
    吴恩达“机器学习”——学习笔记八
    吴恩达“机器学习”——学习笔记七
    吴恩达“机器学习”——学习笔记六
    吴恩达“机器学习”——学习笔记五
  • 原文地址:https://www.cnblogs.com/Javame/p/3487754.html
Copyright © 2020-2023  润新知