下面的配置是iBatis2.x
SqlMapConfig.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!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" <!--是否启用缓存机制 -->
lazyLoadingEnabled="true" <!--是否启用延迟加载机制 -->
enhancementEnabled="true" <!--是否启用字节码增强机制 -->
errorTracingEnabled="true" <!--是否启用错误处理机制 -->
maxRequests="32" <!--最大并发请求数 -->
maxSessions="10" <!--最大Session数 -->
maxTransactions="5" <!--最大并发事务数 -->
useStatementNamespaces="true"/> <!--是否启用名称空间 -->
<transactionManager type="JDBC"> <!--定义了ibatis的事务管理器有3中(JDBC,JTA,EXTERNAL) -->
<dataSource type="SIMPLE"> <!--type属性指定了数据源的链接类型,也有3种类型(SIMPLE,DBCP,JNDI) -->
<property name="JDBC.Driver" value="oracle.jdbc.OracleDriver" />
<property name="JDBC.ConnectionURL" value="jdbc:oracle:thin:@192.168.0.105:1521:orcl" />
<property name="JDBC.Username" value="han" />
<property name="JDBC.Password" value="hanzhou" />
<property name="Pool.MaximumActiveConnections" value="10" /> <!--连接池维持的最大容量 -->
<property name="Pool.MaximumIdleConnections" value="5" /> <!--连接池允许挂起的最大连接 -->
<property name="Pool.MaximumCheckoutTime" value="120000" /> <!--连接被某个任务所允许占用的最大时间 -->
<property name="TimeToWait" value="500" /> <!--线程允许等待的最大时间 -->
</dataSource>
</transactionManager>
<sqlMap resource="org/han/emp.xml" />
</sqlMapConfig>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="conn">
<!--namespace是该sqlMap的命名空间,因为SQL Map映射文件可以有多个, 而对于SQL Map来说所有映射文件都是全局性的。这意味着在SQL
Map中的标识只能是惟一的, 利用namespace和标识的全限定名就可以进行区别,前提是,配置文件中的useStatementNamespaces
属性必须设置为true。 -->
<!--- Showing all data of table -->
<typeAlias alias="emp" type="org.han.entity.Emp" /><!-- 别名 -->
<!-- sql语句 -->
<select id="getAll" resultClass="emp">
select * from scott.emp
</select>
</sqlMap>
Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
List<Emp> contacts = (List<Emp>) sqlMap.queryForList("conn.getAll", null);