Mybatis学习笔记——输入参数parameterType、Mybatis调用存储过程

时间:2022-04-11 11:46:57
输入参数:parameterType(两种取值符号)
1.类型为简单类型
区别:
    (1) #{可以为任意值}
        ${vaue}--->标识符只能是value
    (2)#{}  自动给String类型加上‘’--->自动类型转换
        ${}  原样输出 --->适合于动态字段进行动态排序
    (3)#{}  防止sql注入
        ${}  不防止
相同之处:
    (1)都可以获取对象的值(嵌套类型对象)
 
2.对象类型 
    #{属性名}
    ${属性名}--->标识符是属性名,eg:stuno
 
输入对象为HashMap:
    用map中key的值匹配 占位符#{name},如果匹配成功,则用map的value替代占位符。
 
MyBaties调用存储过程
<!--通过调用存储过程查询某年级的总人数  statementType="CALLABLE"
    输入参数必须为HashMap-->
    <select id="queryCountByGradeWithProcedure" statementType="CALLABLE" resultType="int" parameterType="HashMap">
        {
            call queryCountByGradeWithProcedure(
                #{gName,jdbcType=VARCHAR,mode=in},
                #{sCount,jdbcType=INTEGER,mode=out}
            )
        }
    </select>
使用时,通过HashMap的put()方法传入输入参数的值,通过get()方法拿到输出参数的值。
注意jar包的版本问题。
<transactionManager type="JDBC"/>,增删改必须手工commit