mybatis调用存储过程

创建存储过程

create PROCEDURE pro1(in name1 VARCHAR(20),out num INTEGER)
BEGIN
insert into dept (dname) values (name1);
select count(*) into num from dept;
END

创建mapper

  <parameterMap id="pro1" type="java.util.Map">
        <parameter property="dname" mode="IN" jdbcType="VARCHAR"/>
        <parameter property="num" mode="OUT" jdbcType="INTEGER"/>
    </parameterMap>

    <insert id="testPro" parameterMap="pro1" statementType="CALLABLE">
        call pro1(?,?);
    </insert>
JDBC 要求,如果一个列允许 null 值,并且会传递值 null 的参数,就必须要指定 JDBC Type
映射文件还可以这样写:

运行测试:

public static void main(String[] args) throws IOException {
        SqlSessionFactory sql = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
        SqlSession sqlSession = sql.openSession();
        DempDAO mapper = sqlSession.getMapper(DempDAO.class);
        Map map=new HashMap<>();
        map.put("dname", "设计部");
        map.put("num", 0);
        mapper.testPro(map);
        sqlSession.commit();
        System.out.println(map.get("num").toString());
    }

 

转载于:https://www.cnblogs.com/Zs-book1/p/11253936.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值