mybatis 调用 mysql 存储过程同时使用输入和输出参数 (07)
mybatis 调用 mysql 存储过程同时使用输入和输出参数 (07)
使用实例
1、数据表结构和数据为
2、存储过程语句
3、测试调用方式(mysql中发过在此在说明下,加深印象)
4、mapper文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mybatis03.mapper.PersonMapper"> <!-- 存储过程调用例子 --> <select id="queryPersonListByIDWithProcedure" statementType="CALLABLE" parameterType="HashMap"> {CALL queryPersonListByIDWithProcedure(#{name,jdbcType=VARCHAR,mode=IN},#{scount,jdbcType=INTEGER,mode=OUT})} </select> </mapper>
5、mapper接口类
package com.mybatis03.mapper; import com.mybatis03.bean.Address; import com.mybatis03.bean.Person; import java.util.HashMap; import java.util.List; import java.util.Map; /** * @author :jack.zhao * @Describe: 操作mybatis接口 * @date :2021-10-16 22:55 */ public interface PersonMapper { // 调用存储过程 void queryPersonListByIDWithProcedure(Map map); }
6、测试类
/** * @author :jack.zhao * @Describe: 测试类 * @date :2021-10-16 22:55 */ public class test03 { // 存储过程调用(queryPersonListByIDWithProcedure) @Test public void queryPersonListByIDWithProcedure() throws Exception{ Reader reader = Resources.getResourceAsReader("mybatis-03.xml"); SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader); SqlSession session = sessionFactory.openSession(); Map<String,Object> personMap = new HashMap<String,Object>(); personMap.put("name","%i%"); PersonMapper personMapper = session.getMapper(PersonMapper.class); personMapper.queryPersonListByIDWithProcedure(personMap); // 存储过程没有返回值,通过输出参数获得 Object count = personMap.get("scount"); System.out.println("查询数据条数为:"+count); session.close(); } }
7、pom配置文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis01"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <mappers> <!-- java.zhao 加载映射文件 --> <mapper resource="com/mybatis03/mapper/personMapper.xml"/> </mappers> </configuration>
8、查询结果