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、查询结果

 

posted @ 2021-10-18 15:43  东北大亨  阅读(473)  评论(0)    收藏  举报