程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 使用dao.Processor管理數據持久化對象

使用dao.Processor管理數據持久化對象

編輯:關於JAVA

dao.Processor是在多數據庫多實體環境下以Java對象的數據對象化和持久化的核心類,它的使用方

法總結如下:

一、與Entity綁定;

針對dao.entity對象,可與EJB.entity設置兼容。與entity兼容的典型使用方法是:

Processor pro =ProcessorFactory.getProcessorInstance(ent);

或:

Processor pro =Processor.getInstance(ent);

或:

processor pro =Procesor.getInstance();

pro.setEntity(entity); 或;pro.setEntity(String ent);

效果一樣;

使用的方式是: pro.open();這時侯pro會從entity的設置中通過datasource或ConnectionManager獲得指定的數據庫連接;

pro.close(),關閉清空所有的數據資源;

二、與DAO接口綁定;

Pro可以綁定一個或者多個DAO對象,這時侯Processor顯得象一個服務SPI;但每一個DAO對象只能綁定一個Processor實例。

可以通過find獲得dao對象;

DAO dao =pro.findByID(in id)或 pro.findByName(String name)獲得相應entity的實例對象,每個實例相當於數據庫中的一行記錄;

DAO dao =pro.findByValue(String key,String value);//根據給定的條件返回DAO對象;

dao.insert();dao.update();dao.delete()等方法相應通過接口調用pro.insert(DAO dao)等幾個同名方法;可以由容器管理這幾個方法,保持與數據庫的同步持久性。

dao.isExist(),該對象是否存在;

DAO dao =pro.getDao(String sql);//其實是直接用sql獲得dao對象;

三、與Query綁定;

dao.Processor的另一個使用方法是與dao.Query對象同步。Query是由dao.xml或其他XML定義的包含sql的查詢容器,典型設置如下:

insert into bbsthread (author,sourceid,views,replys,authorid,pubdate,alias,topic,content,name,oldpath,oldsource) values (${author},${sourceid},${vIEws},${replys},${authorid},${pubdate},${alias},${topic},${content},${name},${oldpath},${oldsource})

Query通過Query.addVarian(name,value),然後使用Query.getSqlStatement()獲得完整的sql語句;

Processor.setQuery(Query qry)設入Query;

String msg =pro.execute();//如果執行正常反回空,否則返回錯誤信息;

或ArrayList alist =pro.executeQuery();這要求在entity有效的情況下返回空或者是該entity的對象查詢列(適用於select型的Query);

或Resultset rs =pro.getResultSet(Query qry);四、直接執行Sql;

dao.Processor可以直接執行sql;

對於查詢型的語句可以直接通過ResultSet rs =pro.getResultSet(sql);

或者:String msg =pro.doUpdate(sql);直接執行sql執行語句;

通過 ArrayList alist =pro.getResultList(String sql);//使用entity設定的Class類型,要求entity不為空

或ArrayList alist =pro.getResultList(String sql,String sclss); //DAO接口的class名稱;

或ArrayList alist =pro.getResultList(String sql,Class cls);

這幾個重疊的方法得到相應的查詢結果對象列;

ArrayList alist =pro.getResultList(String[] conditions,String sOrd);//這個方法要求enty已經設好,按給定的更新的conditions條件集或order語句返回排序對象列;

五、擴展的方法:

ArrayList alist =pro.getStringList(Query qry);//返回的是String型的列;

BatchDelete(int[] ids),BatchResume(int[] ids); BatchClear(int[] ids),幾個Batch方法,要求在entity已經設定的基礎上批執行指定的id集的所有記錄。

六、獲取connnection的方法;主要通過ConnectionManager獲取數據庫連接;

有三個可能的途徑;一是通過entity所屬的獲得需要的連接名;二是通過Query的getConn獲得需要的連接名;三是通過setConnection直接獲得連接名;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved