ibatis调用mysql存储过程示例

配置文件:

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();
		}		

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值