mybatis使用存储过程
Posted ritualyang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis使用存储过程相关的知识,希望对你有一定的参考价值。
mybatis使用存储过程
创建存储过程
CREATE DEFINER=`root`@`localhost` PROCEDURE `select_user_count`(out userCount INTEGER,OUT postCount INTEGER) BEGIN #Routine body goes here... SELECT count(*) as userCount from tb_sys_user into userCount; SELECT count(*) as postCount from tb_posts_post into postCount; END
创建对象
public class CountVo implements Serializable { private static final long serialVersionUID = 1481563278090175522L; private Integer userCount; private Integer postCount; //toString,get,set........ }
注解使用(不可设置数据为只读,不然out会报错的)
@Select({"call select_user_count(#{userCount,mode=OUT,jdbcType=INTEGER},#{postCount,mode=OUT,jdbcType=INTEGER})"})
@Options(statementType = StatementType.CALLABLE)
void getCount(CountVo countVo);
xml调用
<select id="getCount" parameterType="com.base.CountVo" statementType="CALLABLE"> {call select_user_count( #{userCount,mode=OUT,jdbcType=INTEGER}, #{postCount,mode=OUT,jdbcType=INTEGER})} </select>
service层调用
CountVo countVo = new CountVo(); tbSysUserMapper.getCount(countVo); System.out.println(countVo.toString());
以上是关于mybatis使用存储过程的主要内容,如果未能解决你的问题,请参考以下文章