mybatis调用存储过程
2017-10-25 13:25
253 查看
表
DROP TABLE IF EXISTSp_user;
CREATE TABLE
p_user(
idint(11) NOT NULL AUTO_INCREMENT,
namevarchar(10) DEFAULT NULL,
sexchar(2) DEFAULT NULL,
PRIMARY KEY (
id)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
模拟数据
INSERT INTOp_userVALUES (‘1’, ‘A’, ‘男’);
INSERT INTO
p_userVALUES (‘2’, ‘B’, ‘女’);
INSERT INTO
p_userVALUES (‘3’, ‘C’, ‘男’);
存储过程
CREATE PROCEDURE ges_user_count(OUT user_count int)BEGIN
IF sex_id=0 THEN
SELECT COUNT(*) FROM p_user WHERE p_user.sex=’女’ INTO user_count;
ELSE
SELECT COUNT(*) FROM p_user WHERE p_user.sex=’男’ INTO user_count;
END IF;
END
<!-- parameterMap.put("sexid", 0); parameterMap.put("usercount", -1); --> <parameterMap type="java.util.Map" id="getUserCountMap"> <parameter property="sexid" mode="IN" jdbcType="INTEGER" /> <parameter property="usercount" mode="OUT" jdbcType="INTEGER" /> </parameterMap> <!-- 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 statementType="CALLABLE"存储过程类型 --> <select id="getUserCount" parameterMap="getUserCountMap" statementType="CALLABLE"> CALL ges_user_count(?,?) </select>
//接口 public interface UserMapper { public int getUserCount(); } //实现类 我用spring的自动注入 也可以通过实例化来new SqlSessionFactory package com.dw.user.dao; import java.util.HashMap; import java.util.Map; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; @Repository("userMapper") public class UserMapperImpl implements UserMapper{ //注入SqlSessionFactory @Autowired SqlSessionFactory sessionFactory; public void setSessionFactory(SqlSessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } @Override public int getUserCount() { SqlSession sqlSession = sessionFactory.openSession(); Map<String, Integer> parameterMap = new HashMap<String, Integer>(); //设置参数 parameterMap.put("sexid", 1); parameterMap.put("usercount", -1); //Integer i = sqlSession.selectOne("com.dw.user.dao.UserMapper.getUserCount",parameterMap); Integer i = parameterMap.get("usercount"); System.out.println(i); sqlSession.close(); return i; } }
相关文章推荐
- mybatis调用存储过程异常
- mybatis调用存储过程
- Mybatis调用存储过程_6
- Mybatis调用存储过程
- MyBatis的学习总结五:调用存储过程【参考】
- MyBatis系列之(七):调用存储过程
- MyBatis调用存储过程
- MyBatis调用存储过程
- mybatis调用存储过程返回多个结果集
- MyBatis—调用mysql存储过程 带输出输入参数
- Mybatis调用存储过程异常-Non supported SQL92 token at position: 1
- MyBatis学习总结(六)——调用存储过程
- mybatis调用存储过程(二)
- MyBatis学习总结(六)——调用存储过程
- Mybatis调用存储过程
- MyBatis-调用存储过程 -08
- mybatis 调用存储过程 返回游标 实例
- MyBatis调用存储过程,含有返回结果集、return参数和output参数 .
- MySQL 存储过程实例 与 ibatis/mybatis/hibernate/jdbc 如何调用存储过程
- MyBatis调用存储过程