日期:2014-05-16 浏览次数:20896 次
配置文件:
sqlMapConfig.xml
?
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<settings cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
maxRequests="32"
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="true"
/>
<!-- Configure a built-in transaction manager. If you're using an
app server, you probably want to use its transaction manager
and a managed datasource -->
<transactionManager type="JDBC" commitRequired="false">
<dataSource type="proxool.ProxoolDataSourceFactory">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="driverUrl" value="jdbc:mysql://localhost:3306/test"/>
<property name="user" value="root"/>
<property name="password" value="root"/>
<property name="alias" value="default"/>
<property name="maximum-connection-count" value="40"/>
<property name="overload-without-refusal-lifetime" value="60"/>
<property name="house-keeping-test-sql" value="select 1"/>
</dataSource>
</transactionManager>
<sqlMap resource="proxool/User.xml"/>
</sqlMapConfig>
?
User.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="user">
<!-- 返回结果集 -->
<parameterMap id="ParameterMap" class="map">
<parameter property="userNo" jdbcType="INTEGER" javaType="java.lang.Integer" mode="IN"/>
</parameterMap>
<procedure id="call_SearchUser" parameterMap="ParameterMap" resultClass="proxool.User">
{call selectuser(?)}
</procedure>
</sqlMap>
?
数据库脚本:
create procedure selectuser(in userno int) begin select * from user where uid = userno; end
?
?pojo类:
package proxool;
public class User {
private String uid;
private String usercd;
private String password;
private String addymd;
public String getAddymd() {
return addymd;
}
public void setAddymd(String addymd) {
this.addymd = addymd;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getUsercd() {
return usercd;
}
public void setUsercd(String usercd) {
this.usercd = usercd;
}
}
?
测试代码:?
List list = null;
String resource = "proxool/sqlMapConfig.xml";
Reader reader;
SqlMapClient sqlMap = null;
try {
reader = Resources.getResourceAsReader(resource);
sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
sqlMap.startTransaction();
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("userNo", 1);
list = sqlMap.queryForList("user.call_SearchUser", map);
for (int i = 0; i < list.size(); i++) {
User user = (User) list.get(i);
System.out.print(user.getUid());
System.out.print('\t');
System.out.print(user.getUsercd());
System.out.print('\t');
System.out.println(user.getPassword());
}
sqlMap.commitTransaction();
} catch (Exception e) {
e.printStackTrace();
} finally {
sqlMap.endTransaction();
}
?