• 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");
    }

  • 相关阅读:
    Gridview利用DataFormatString属性设置数据格式
    Sqlserver 字符串操作
    解决“网络不存在或尚未启动”
    ASP.NET中Url重写后,打不开真正的Html页面
    jquery 清空表单
    Sqlserver2005远程访问
    FCKeditor 在Ie中弹出“未知工具栏项目”的暂时解决方法
    表单成功提交了,点后退显示网页过期
    找不到方法:“Void System.Web.UI.HtmlControls.HtmlForm.set_Action(System.String)”。
    LINQ 标准的查询操作符 设置操作符号 两个结果集的 并、交、差、唯一
  • 原文地址:https://www.cnblogs.com/sanhuan/p/4205238.html
Copyright © 2020-2023  润新知