• mybatis调用mysql存储过程


    返回类似 select *from 的做法
    过程:
    create procedure selectAll()
    BEGIN
    select * from user;
    end

    xml配置:
    <select id="selectall" resultType="map" statementType="CALLABLE">
    {call selectAll()}
    </select>

    java配置:
    //service层调用
    List<Map<String, Object>> ss = accountMapper.selectall();
    //DAO调用
    public List<Map<String,Object>> selectall();

    Sql代码
    -- --------------------------------------------------------------------------------
    -- Routine DDL
    -- Note: comments before and after the routine body will not be stored by the server
    -- --------------------------------------------------------------------------------
    DELIMITER $$

    CREATE DEFINER=`root`@`localhost` PROCEDURE `selectCount`(
    IN pcsId int,
    IN drId int,
    IN partnerId int,
    IN customerId int,
    OUT pcsCount int,
    OUT drCount int

    )
    BEGIN

    select count(md.id) into @pcsC from mdm_device md
    left join mdm_device_security mds on mds.device_id = md.id
    where mds.device_rooted = pcsId
    and md.partner_id = partnerId and md.customer_id = customerId;
    set pcsCount = @pcsC;


    select count(md.id) into @drC from mdm_device md
    where md.managed_status = drId and DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(md.un_manage_date)
    and md.partner_id = partnerId and md.customer_id = customerId;
    set drCount = @drC;



    END


    1.java调用传入MAP。获取通过MAP获取。
    1.1 mapper文件写法
    Xml代码
    <parameterMap type="map" id="homeVO">
    <parameter property="pcsId" jdbcType="INTEGER" mode="IN"/>
    <parameter property="drId" jdbcType="INTEGER" mode="IN"/>
    <parameter property="partnerId" jdbcType="INTEGER" mode="IN"/>
    <parameter property="customerId" jdbcType="INTEGER" mode="IN"/>
    <parameter property="pcsCount" jdbcType="INTEGER" mode="OUT"/>
    <parameter property="drCount" jdbcType="INTEGER" mode="OUT"/>
    </parameterMap>
    <select id="selectForHome" parameterMap="homeVO"
    statementType="CALLABLE">
    {call selectCount(
    ?,?,?,?,?,?
    )}
    </select>
    1.2 java调用写法
    Java代码
    @Override
    public StringselectHomeCount(HomeVO home) throws Exception {
    Map<String, Object> map = new HashMap<String, Object>();
    map.put("pscId", 0);
    map.put("drId", 1);
    map.put("partnerId", 25);
    map.put("customerId", 50);
    map.put("isolation", 1);
    selectOne("Mapper.selectForHome", map);
    System.out.println(map.get("pcsCount"));

    return map.get("drCount");
    }

  • 相关阅读:
    JVM发生OOM调优
    行云创新完成B轮融资,阿里云独家投资
    行云创新直播回顾:DDD“爱”上Dapr
    如何通过Dapr快速实现DDD?
    通过Dapr快速落地DDD,实现高并发
    上K8s,研发团队如何从容一点?
    直播来了!等你围观!聊聊服务网格那些事儿
    服务网格出现流量故障该咋办?SolarMesh发布重大功能
    mysql 授权问题
    Centos Mysql5.7 安装
  • 原文地址:https://www.cnblogs.com/sanhuan/p/4205238.html
Copyright © 2020-2023  润新知