iBatis procedure

一、创建procedure(mysql)

注意:mydb是数据库名

DELIMITER $$

DROP PROCEDURE IF EXISTS `mydb`.`getEmp` $$
CREATE PROCEDURE `mydb`.`getEmp` 
   (IN empid INT)
BEGIN
   SELECT * FROM EMPLOYEE
   WHERE ID = empid;
END $$

DELIMITER;

二、修改Employee.xml文件

<?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="Employee">
	
	<insert id="insert" parameterClass="model.Employee">
		
		insert into Employee (name,gender,salary)
		values (#name#,#gender#,#salary#)
		
		<selectKey resultClass="int" keyProperty="id">
			select last_insert_id() as id
		</selectKey>
	</insert>
	
	<select id="select*" resultClass="java.util.HashMap" parameterClass="int">
		select * from Employee where id = #id#
	</select>
	
	<update id="update#name" parameterClass="model.Employee">
		update Employee set name = #name# where id = #id#
	</update>
	
	<delete id="delete" parameterClass="int">
		delete from Employee where id = #id#
	</delete>
	
	<resultMap id="resultMap" class="model.Employee">
		<result property="id" column="id"/>
		<result property="name" column="name"/>
		<result property="gender" column="gender"/>
		<result property="salary" column="salary"/>
	</resultMap>
	<select id="selectForResultMap" resultMap="resultMap" parameterClass="int">
		select id,name,gender,salary from employee where id = #id#
	</select>
	
	<!-- call stored procedure -->
	<parameterMap id="procedureParam" class="map">
		<parameter property="empId" jdbcType="INT" javaType="java.lang.Integer" mode="IN"/>
	</parameterMap>
	<procedure id="procedure" parameterMap="procedureParam" resultClass="model.Employee">
		{ call getEmp(?) }
	</procedure>
	
</sqlMap>

三、java测试程序

public static void main(String[] args) throws IOException, SQLException{
		Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
		SqlMapClient sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
		
		
		//procedure--------------------------------------------------
		
		System.out.println("ready to call procedure...");
		
		Map<String,Integer> param = new HashMap<String,Integer>();
		param.put("empId", 1);
		
		Employee employee = (Employee) sqlMapClient.queryForObject("Employee.procedure",param);
		
		System.out.println("finish to call procedure...");
	}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值