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" 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.driver.OracleDriver" /> <property name ="JDBC.ConnectionURL" value ="jdbc:oracle:thin:@localhost:1521:OUYANG" /> <property name ="JDBC.Username" value ="study" /> <property name ="JDBC.Password" value ="admin" /> <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 ="com/lovesmile/orp/UserMap.xml" /> <sqlMap resource ="com/lovesmile/orp/CompanyrMap.xml" /> </sqlMapConfig > 映射文件UserMap.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="User"> <!-- 定义该映射文件的Cache机制 --> <cacheModel type="LRU" id="userCache"> <!-- 设定缓存存活的时间 --> <flushInterval hours="24" /> <!-- 设定指定的操作,清空缓存 --> <flushOnExecute statement="User.updateUser" /> <!-- 设定缓存的容量(对象) --> <property name="size" value="1000" /> </cacheModel> <!-- 定义别名 --> <typeAlias alias="user" type="com.lovesmile.orp.entity.Users" /> <typeAlias alias="company" type="com.lovesmile.orp.entity.Company" /> <typeAlias alias="card" type="com.lovesmile.orp.entity.CardId" /> <!-- 通过缓存可以提高查询效率 --> <resultMap class="user" id="getresult"> <result property="id" column="id" /> <result property="username" column="username" /> <result property="pswd" column="password" /> <result property="email" column="email" /> <result property="cardid" column="id" select="User.getcard"/><!-- 一对一 --> <result property="company" column="id" select="User.getcompany"/><!-- 多对一 --> </resultMap> <select id="getUsers" resultMap="getresult" resultClass="user" cacheModel="userCache"> <![CDATA[ select u.id,u.username,u.email,p.password from users u,pwd p where p.u_d=u.id ]]> </select> <update id="updateUser" parameterClass="user"> <![CDATA[ update users set username = #username#,email=#email# where id = #id#]]> </update> <insert id="insertuser" parameterClass="user"> <![CDATA[ insert into users(id,username,email) values(#id#,#username#,#email#)]]> </insert> <delete id="delUser" parameterClass="java.lang.Integer"> <![CDATA[delete from users where id = #id#]]> </delete> <insert id="insertuserBySequence" parameterClass="user"> <selectKey resultClass="java.lang.Integer" keyProperty="id"> select person_seq.nextVal from dual </selectKey> <![CDATA[ insert into users(id,username,email) values(#id#,#username#,#email#)]]> </insert> <!-- 一对一查询 --> <select id="getcard" resultClass="card" parameterClass="java.lang.Integer"> <![CDATA[ select cid,cname from card where u_id=#value# ]]> </select> <select id="getcompany" resultClass="company" parameterClass="java.lang.Integer"> <![CDATA[ select c.* from company c,users u where c.pid=u.p_id and u.id=#value# ]]> </select> <select id="getUsersByName" parameterClass="String" resultClass="user"> <![CDATA[ select * from users where username like '%$username$%' ]]> </select> </sqlMap> 映射文件CompanyrMap.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="Company"> <!-- 定义该映射文件的Cache机制 --> <cacheModel type="LRU" id="userCache"> <!-- 设定缓存存活的时间 --> <flushInterval hours="24" /> <!-- 设定缓存的容量(对象) --> <property name="size" value="1000" /> </cacheModel> <!-- 定义别名 --> <typeAlias alias="user" type="com.lovesmile.orp.entity.Users" /> <typeAlias alias="company" type="com.lovesmile.orp.entity.Company" /> <!-- 通过缓存可以提高查询效率 --> <resultMap class="company" id="getresult"> <result property="pid" column="pid" /> <result property="pname" column="pname" /> <result property="users" column="pid" select="Company.getusers"/><!-- 一对多 --> </resultMap> <select id="getCompany" resultMap="getresult" resultClass="company"> <![CDATA[ select * from company ]]> </select> <!-- 一对一查询 --> <select id="getusers" resultClass="user" parameterClass="java.lang.Integer"> <![CDATA[ select id,username,email from users where p_id=#value# ]]> </select> </sqlMap>