mybatis调用存储过程
来源:互联网 发布:测试udp端口是否打开 编辑:程序博客网 时间:2024/05/11 15:35
直接贴代码吧 注解式可以调用 但是不能返回结果 所有我就贴配置式的 有知道注解怎么返回结果的请评论
数据库代码
#表DROP TABLE IF EXISTS `p_user`;CREATE TABLE `p_user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(10) DEFAULT NULL, `sex` char(2) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;#模拟数据INSERT INTO `p_user` VALUES ('1', 'A', '男');INSERT INTO `p_user` VALUES ('2', 'B', '女');INSERT INTO `p_user` VALUES ('3', 'C', '男');#存储过程CREATE PROCEDURE ges_user_count(OUT user_count int)BEGIN IF sex_id=0 THENSELECT COUNT(*) FROM p_user WHERE p_user.sex='女' INTO user_count;ELSESELECT COUNT(*) FROM p_user WHERE p_user.sex='男' INTO user_count;END IF;END
下面是mybatis配置的代码
<!-- 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>
dao层代码
//接口public interface UserMapper { public int getUserCount();}//实现类 我用spring的自动注入 也可以通过实例化来new SqlSessionFactorypackage 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; }}
后面就可以调用实现类的返回值打印就行了 我就不贴了 如果要 留言就行
阅读全文
0 0
- MyBatis调用存储过程
- mybatis调用存储过程
- mybatis调用存储过程
- mybatis调用存储过程
- mybatis调用存储过程
- Mybatis调用存储过程
- mybatis调用存储过程
- mybatis调用存储过程
- mybatis调用存储过程
- mybatis调用存储过程
- MyBatis调用存储过程
- mybatis 调用存储过程
- Mybatis调用存储过程
- MyBatis调用存储过程
- mybatis调用存储过程
- mybatis存储过程调用
- mybatis调用存储过程
- MyBatis调用存储过程
- windows安装composer Failed to decode zlib stream
- bash中 2>&1 & 的解释
- 10月英语学习总结
- window.open打开H5页面支付和微信公众号支付的被拦截的问题
- Dom元素节点操作
- mybatis调用存储过程
- 离消费者越来越近的5G手机背后,有一位进击者高通
- 原生DOM选择器querySelector和querySelectorAll
- webstorm开发vue相关配置
- 关于spring boot属性文件中文参数文输出到页面乱码
- TimesTen 应用层数据库缓存学习:21. AWT复制Oracle事务失败时的处理
- thinkphp5在php5.5+版本No input file specified问题解决
- Deeplab v2 调试全过程(Ubuntu 16.04+cuda8.0)
- Freemarker实现网页静态化