CRM项目经验总结-从DAO层到链接数据池
生活随笔
收集整理的這篇文章主要介紹了
CRM项目经验总结-从DAO层到链接数据池
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#IDAO接口 定義項(xiàng)目中所有板塊相似功能 也是整個(gè)項(xiàng)目的根接口
public interface IDAO {/*** 新增數(shù)據(jù) @param SQL sql查詢語句 @param params 參數(shù)數(shù)組 @wonter*/public int insert(final String SQL, final Object[] params)throws CRMDBConnException, CRMSQLException;/*** 查詢 要求傳入查詢表對應(yīng)的BeanCalss @param SQL sql查詢語句 @param clazz 查詢表對應(yīng)的BeanCalss @author wonter */public List findAll(final String SQL, Class clazz)throws CRMDBConnException, CRMSQLException;/*** @param SQL sql更新語句 @param bean 更新表對應(yīng)的bean實(shí)例 @author wonter*/public int update(final String SQL, final Object bean)throws CRMDBConnException, CRMSQLException;/*** 刪除單條數(shù)據(jù) @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類 適配器 通過包裝一個(gè)需要適配的對象,把原接口IDAO 轉(zhuǎn)換成目標(biāo)接口。
public abstract class DAOAdapter {/*** 構(gòu)造方法*/public DAOAdapter() {// TODO Auto-generated constructor stub
}/*** 查詢 要求傳入查詢表對應(yīng)的BeanCalss @param SQL sql查詢語句 @param clazz 查詢表對應(yīng)的BeanCalss @author wonter */ public List findAll(final String SQL, Class clazz)throws CRMDBConnException, CRMSQLException {return null;}/*** 新增數(shù)據(jù) @param SQL sql查詢語句 @param params 參數(shù)數(shù)組 @wonter*/ public int delete(String SQL, Object id)throws CRMDBConnException, CRMSQLException {return 0;}}
#CompanyDAO類 具體實(shí)現(xiàn)類 每一個(gè)DAO可以實(shí)現(xiàn)一個(gè)DAOAdapter適配器,也可以直接實(shí)現(xiàn)I**DAO。這看實(shí)現(xiàn)是否完全。 如果實(shí)現(xiàn)不全面,直接實(shí)現(xiàn)適配器繼承接口。
public class CompanyDAO extends DAOAdapter implements ICompanyDAO {/*** CompanyDAOde的空構(gòu)造 @author wonter*/public CompanyDAO() {}/*** 刪除單條數(shù)據(jù)* @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類 工具類 用于連接數(shù)據(jù)庫
public class DAOUtil { private DAOUtil() {#空構(gòu)造}/*** 獲得DAOUtil的實(shí)例* @return 返回 DAOUtil實(shí)例*/public static DAOUtil getInstance() throws InstantiationException, IllegalAccessException {return (DAOUtil) DAOUtil.class.newInstance() ;} /*** 刪除單條數(shù)據(jù)* @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類 數(shù)據(jù)連接 單例設(shè)計(jì)模式
public final class CRMQueryRunner extends QueryRunner {
......
后臺就到這來吧!再說前臺。
?
總結(jié)
以上是生活随笔為你收集整理的CRM项目经验总结-从DAO层到链接数据池的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: AFNetworking 下载文件断点续
- 下一篇: CentOS虚拟机克隆后网卡配置问题