iBATIS SQLMap配置Demo淺析
作者:佚名
iBATIS SQLMap配置Demo向你介紹iBATIS SQLMap的具體配置以及實(shí)例。
在Spring的jpestore中,數(shù)據(jù)持久層用到了iBATIS SQLMaps,這里寫一個(gè)iBATIS的簡(jiǎn)單Demo,作為iBATIS的學(xué)習(xí)筆記。
iBATIS的SQLMap配置文件是XML形式,一般叫SqlMapConfig.xml,如下:
Xml代碼
- ﹤?xml version="1.0" encoding="UTF-8"?﹥
- ﹤!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map
- Config 2.0/" "http://www.ibatis.com/dtd/sql-map-config-2.dtd"﹥
- ﹤sqlMapConfig﹥
- ﹤!--settings配置是可選的,用來控制sqlMapping的詳細(xì)配置,
- 主要是事務(wù)處理。參數(shù)具體含義請(qǐng)參考ibatis開發(fā)指南--﹥
- ﹤settings cacheModelsEnabled="true" enhancementEnabled="true"
- lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32"
- maxSessions="10" maxTransactions="5" useStatementNamespaces="false" /﹥
- ﹤!--使用SimpleDataSource配置數(shù)據(jù)源,DataSource的iBATIS實(shí)現(xiàn):
- SimpleDataSource類,Jakarta DBCP(Commons),
- 和可通過JNDI上下文查找的DataSource(即應(yīng)用服務(wù)器中的DataSource)--﹥
- ﹤transactionManager type="JDBC"﹥
- ﹤dataSource type="SIMPLE"﹥
- ﹤property name="JDBC.Driver"
- value="com.mysql.jdbc.Driver" /﹥
- ﹤property name="JDBC.ConnectionURL"
- value="jdbc:mysql://127.0.0.1:3306/jpetstore?" /﹥
- ﹤property name="JDBC.Username" value="root" /﹥
- ﹤property name="JDBC.Password" value="" /﹥
- ﹤property name="Pool.MaximumActiveConnections" value="10" /﹥
- ﹤property name="Pool.MaximumIdleConnections" value="5" /﹥
- ﹤property name="Pool.MaximumCheckoutTime" value="120000" /﹥
- ﹤property name="Pool.TimeToWait" value="500" /﹥
- ﹤property name="Pool.PingQuery" value="select 1 from ACCOUNT" /﹥
- ﹤property name="Pool.PingEnabled" value="false" /﹥
- ﹤property name="Pool.PingConnectionsOlderThan" value="1" /﹥
- ﹤property name="Pool.PingConnectionsNotUsedFor" value="1" /﹥
- ﹤/dataSource﹥
- ﹤/transactionManager﹥
- ﹤!--引入所有的SQL Map配置文件,這里的路徑是classpath的相對(duì)路徑,
- 例如下面的配置說明引入Account.xml,位置在com/quqworld/test/ibatis包內(nèi)--﹥
- ﹤sqlMap resource="com/quqworld/test/ibatis/Account.xml" /﹥
- ﹤/sqlMapConfig﹥
接下來是iBATIS SQLMap映射文件Account.xml:
Xml代碼
- ﹤?xml version="1.0" encoding="UTF-8"?﹥
- ﹤!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
- "http://www.ibatis.com/dtd/sql-map-2.dtd"﹥
- ﹤sqlMap namespace="Account"﹥
- ﹤!--在SQL Map框架中,Result Map是極其重要的組件。
- 在執(zhí)行查詢Mapped Statement時(shí),resultMap負(fù)責(zé)將結(jié)果集的列值映射成Java Bean的屬性值。--﹥
- ﹤resultMap id="result"
- class="org.springframework.samples.jpetstore.domain.Account"﹥
- ﹤result property="username" column="userid" columnIndex="1" /﹥
- ﹤result property="email" column="email" columnIndex="2" /﹥
- ﹤result property="firstName" column="firstname" columnIndex="3" /﹥
- ﹤result property="lastName" column="lastname" columnIndex="4" /﹥
- ﹤result property="status" column="status" columnIndex="5" /﹥
- ﹤result property="address1" column="addr1" columnIndex="6" /﹥
- ﹤result property="address2" column="addr2" columnIndex="7" /﹥
- ﹤result property="city" column="city" columnIndex="8" /﹥
- ﹤result property="state" column="state" columnIndex="9" /﹥
- ﹤result property="zip" column="zip" columnIndex="10" /﹥
- ﹤result property="country" column="country" columnIndex="11" /﹥
- ﹤result property="phone" column="phone" columnIndex="12" /﹥﹤/resultMap﹥
- ﹤select id="getAllAccountByUserid" resultMap="result"﹥
- select
- account.userid,
- account.email,
- account.firstname,
- account.lastname,
- account.status,
- account.addr1,
- account.addr2,
- account.city,
- account.state,
- account.zip,
- account.country,
- account.phone
- from account
- where account.userid=#value#
- ﹤/select﹥
- ﹤/sqlMap﹥
下面是iBATIS SQLMap的Java代碼:
Java代碼
- try {
- String resource = "com/quqworld/test/ibatis/SqlMapConfig.xml";
- Reader reader = Resources.getResourceAsReader(resource);
- SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
- Object object = sqlMap.queryForObject(
- "getAllAccountByUserid", "ACID",new Account());
- System.out.println("select result: " +object);
- } catch (Exception e) {
- e.printStackTrace();
- }
iBATIS SQLMap的配置Demo就向你介紹到這里,希望對(duì)你有所幫助。
【編輯推薦】
責(zé)任編輯:仲衡
來源:
CSDN博客