CRM项目经验总结-从DAO层到链接数据池
![](http://images0.cnblogs.com/blog/291579/201312/23183904-0d4cf1467310437eb72e3bde4a33afff.jpg)
#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 { ...... 后台就到这来吧!再说前台。
技术微信群:
加微信:wonter 发送:技术Q
医疗微信群:
加微信:wonter 发送:医疗Q
更多文章关注公众号:
加微信:wonter 发送:技术Q
医疗微信群:
加微信:wonter 发送:医疗Q
更多文章关注公众号:
![](https://images.cnblogs.com/cnblogs_com/Javame/604499/o_cto.png)