iBATIS DAO framework初體驗(yàn)
iBATIS DAO framework的應(yīng)用一、
準(zhǔn)備工作
1.到這里可以下載http://apache.etoak.com/ibatis/binaries/ibatis.java/iBATIS_DAO-2.2.0.638.zip
2.首先寫(xiě)DAO層接口及實(shí)現(xiàn)類(lèi):具體類(lèi)方法省略,主要是實(shí)現(xiàn)類(lèi)需要繼承
com.ibatis.dao.client.template.SqlMapDaoTemplate類(lèi)
Java代碼
- package datamigrate;
- import datamigrate.TCommGuestbook0;
- import datamigrate.TCommGuestbook0Example;
- import java.util.List;
- public interface TCommGuestbook0DAO {
- int countByExample(TCommGuestbook0Example example);
- }
Java代碼
- package datamigrate;
- import com.ibatis.dao.client.DaoManager;
- import com.ibatis.dao.client.template.SqlMapDaoTemplate;
- import datamigrate.TCommGuestbook0;
- import datamigrate.TCommGuestbook0Example;
- import java.util.List;
- public class TCommGuestbook0DAOImpl extends SqlMapDaoTemplate implements TCommGuestbook0DAO {
- public TCommGuestbook0DAOImpl(DaoManager daoManager) {
- super(daoManager);
- }
- public int countByExample(TCommGuestbook0Example example) {
- Integer count = (Integer) queryForObject(
- "t_comm_guestbook_0.ibatorgenerated_countByExample", example);
- return count;
- }
- }
iBATIS DAO framework應(yīng)用二、
開(kāi)始iBATIS DAO framework的體驗(yàn)
1.配置dao.xml –The Configuration File (http://ibatis.apache.org/dtd/dao-2.dtd)
Xml代碼
- ﹤!DOCTYPE daoConfig
- PUBLIC "-//ibatis.apache.org//DTD DAO Configuration 2.0//EN"
- "http://ibatis.apache.org/dtd/dao-2.dtd"﹥
- ﹤daoConfig﹥
- ﹤!-- Example SQL Maps DAO Configuration --﹥
- ﹤context﹥
- ﹤transactionManager type="SQLMAP"﹥
- ﹤property name="SqlMapConfigResource" value="sqlmap-config.xml" /﹥
- ﹤/transactionManager﹥
- ﹤dao interface="datamigrate.TCommGuestbook0DAO" implementation="datamigrate.TCommGuestbook0DAOImpl" /﹥
- ﹤dao interface="datamigrate.TCommMsgbrdDAO" implementation="datamigrate.TCommMsgbrdDAOImpl" /﹥
- ﹤/context﹥
- ﹤/daoConfig﹥
非常簡(jiǎn)單的配置:
1.申明了事物和JDBC連接使用sqlmap-config.xml(Ibatis標(biāo)準(zhǔn)的配置文件,如下)中的屬性,
2.申明了需要管理的dao文件接口和實(shí)現(xiàn)。
sqlmap-config.xml
Xml代碼
- ﹤?xml version="1.0" encoding="GBK"?﹥
- ﹤!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
- "http://www.ibatis.com/dtd/sql-map-config-2.dtd"﹥
- ﹤sqlMapConfig﹥
- ﹤settings cacheModelsEnabled="true"
- useStatementNamespaces="true"/﹥
- ﹤transactionManager type="JDBC"﹥
- ﹤dataSource type="SIMPLE"﹥
- ﹤property name="JDBC.Driver" value="com.mysql.jdbc.Driver" /﹥
- ﹤property name="JDBC.ConnectionURL" value="jdbc:mysql:
- //134.1:3306/b23?useUnicode=true&
- characterEncoding=gbk&
- zeroDateTimeBehavior=convertToNull" /﹥
- ﹤property name="JDBC.Username" value="weisong" /﹥
- ﹤property name="JDBC.Password" value="weisong" /﹥
- ﹤/dataSource﹥
- ﹤/transactionManager﹥
- ﹤sqlMap resource="datamigrate/t_comm_guestbook_0_SqlMap.xml" /﹥
- ﹤sqlMap resource="datamigrate/t_comm_msgbrd_SqlMap.xml" /﹥
- ﹤/sqlMapConfig﹥
iBATIS DAO framework具體支持一下集中JDBC連接和事物管理方式(當(dāng)然通常會(huì)用sqlmap)
圖1
2.使用方式:
iBATIS DAO framework接口類(lèi)非常簡(jiǎn)潔:
圖2
使用起來(lái)大致如下:
Java代碼
- package datamigrate;
- import java.io.IOException;
- import java.io.Reader;
- import java.util.List;
- import com.ibatis.common.resources.Resources;
- import com.ibatis.dao.client.DaoManager;
- import com.ibatis.dao.client.DaoManagerBuilder;
- public class MainClass {
- public static void main(String[] args) throws IOException {
- Reader reader = Resources.getResourceAsReader("dao.xml");
- DaoManager daoManager = DaoManagerBuilder.buildDaoManager(reader);
- try {
- TCommMsgbrdDAO dao1 = (TCommMsgbrdDAO) daoManager
- .getDao(TCommMsgbrdDAO.class);
- daoManager.startTransaction();
- List﹤TCommMsgbrdWithBLOBs﹥ oldDB = dao1
- .selectByExampleWithBLOBs(new TCommMsgbrdExample());
- daoManager.commitTransaction();
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } finally {
- daoManager.endTransaction();
- }
- }
- }
獲取到DaoManager 之后磊代碼就是了,根本不需要什么web環(huán)境。
iBATIS DAO framework三、
跟iBATIS結(jié)合
現(xiàn)在使用iBATIS的時(shí)候,通常會(huì)選擇“Ibator”工具來(lái)自動(dòng)生成PO對(duì)象和sql-map.xml,在﹤daoGenerator﹥?cè)乩锩婵梢耘渲靡粋€(gè)屬性type="IBATIS",具體意思就是“The generated DAO objects will conform to the (now deprecated) iBATIS DAO framework.” 就會(huì)自動(dòng)生成支持iBATIS DAO framework的DAO實(shí)現(xiàn)了。
iBATIS DAO framework的體驗(yàn)就向你介紹到這里,希望對(duì)你有所幫助。
【編輯推薦】