博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
调用存储过程
阅读量:6396 次
发布时间:2019-06-23

本文共 1844 字,大约阅读时间需要 6 分钟。

1

 准备数据库表和存储过程:

create table p_user(

        id int primary key auto_increment,

        name varchar(10),

        sex varchar(20)

);

 

 2

 

create table p_user(

        id int primary key auto_increment,

        name varchar(10),

        sex varchar(20)

);

 

insert into p_user(name,sex) values('A',"nan");

insert into p_user(name,sex) values('B',"nv");

insert into p_user(name,sex) values('C',"nan");

 

#创建存储过程(查询得到男性或女性的数量, 如果传入的是0就女性否则是男性)

DELIMITER $

CREATE PROCEDURE mybatis.ges_user_count(IN sex_id INT, OUT user_count INT)

BEGIN

IF sex_id=0 THEN

SELECT COUNT(*) FROM mybatis.p_user WHERE p_user.sex='nv' INTO user_count;

ELSE

SELECT COUNT(*) FROM mybatis.p_user WHERE p_user.sex='nan' INTO user_count;

END IF;

END

$

 

#调用存储过程

DELIMITER ;

SET @user_count = 0;

CALL mybatis.ges_user_count(1, @user_count);

SELECT @user_count;

 

创建表的实体类:

public class User {

        private String id;

        private String name;

        private String sex;

}

 

<mapper namespace="com.mybatis.test7.userMapper">

    <!--

        查询得到男性或女性的数量, 如果传入的是0就女性否则是男性

        CALL mybatis.get_user_count(1, @user_count);

     -->

    注意:statementtype必须修改,因为是调用存储过程

     <select id="getCount" statementType="CALLABLE" parameterMap="getCountMap">

         call mybatis.get_user_count(?,?)

     </select>

     <parameterMap type="java.util.Map" id="getCountMap">

         <parameter property="sex_id" mode="IN" jdbcType="INTEGER"/>

         <parameter property="user_count" mode="OUT" jdbcType="INTEGER"/>

     </parameterMap>

</mapper>

 

测试调用:

SqlSession session=MyBatisUtils.getSession();

String statement = "com.atguigu.day03_mybaits.test8.getCountuserMapper.getUserCount";
Map<String, Integer> parameterMap = new HashMap<String, Integer>();

注意:sexid可以不和上面的sex_id一样,usercount一样

parameterMap.put("sexid", 1);

parameterMap.put("usercount", -1);
session.selectOne(statement, parameterMap);
Integer result = parameterMap.get("usercount");
System.out.println(result);
session.close();

转载于:https://www.cnblogs.com/jrts/p/6132505.html

你可能感兴趣的文章
LAMP架构部署
查看>>
SAP在建工程的基本配置
查看>>
DOCKER构建本地局域网镜像
查看>>
nagios在apache加载信息
查看>>
TCP 为什么是三次握手,为什么不是两次或四次?
查看>>
第二次作业
查看>>
Linux的epoll
查看>>
CentOS7.5利用Kubeadm安装kubernets1.13.0(国内版)
查看>>
JMS 之 Active MQ 消息存储
查看>>
Ubuntu挂载新硬盘
查看>>
sshd
查看>>
第3章 线程间通信
查看>>
linux的第一次见面约会~~
查看>>
loadrunner Error -26601: Decompression function
查看>>
Docker学习笔记三:Docker镜像image
查看>>
HashiCorp Terraform 0.12 新特性抢鲜看:可靠的JSON语法
查看>>
枚举类型浅析
查看>>
阿里云数字化转型方案再升级,移动研发平台EMAS助力海底捞超级App“云上捞”...
查看>>
Windows 10一个很愚蠢的做法
查看>>
【Python学习笔记】切片和迭代
查看>>