MyBatis学习笔记(三)——parameterType为基本类型时的使用方法

    xiaoxiao2025-10-23  2

    当mapper中的parametType为基本类型(如int,string等)时,是怎样使用的

    最简单的使用方法:

    <select id="list" parameterType="string" resultMap="ClassroomResultMap"> select id, name from bc where name = #{name} </select> 这里的参数#{}中写什么变量名都可以,mybatis会自动给赋值。而当使用if语句时,比如

    <select id="list" parameterType="string" resultMap="ClassroomResultMap"> select id, name from bc <where> <if test="name != null and <span style="font-family: Arial, Helvetica, sans-serif;">name</span> != ''"> name like CONCAT('%','${name}','%') </if> </where> </select>

    会报错

    org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'name' in 'class java.lang.String'

    原因:

    mybatis自动调用OGNL寻找String的name属性

    解决办法:

    1、使用_parameter

    <select id="list" parameterType="string" resultMap="ClassroomResultMap"> select id, name from bc <where> <if test="_parameter != null and _parameter != ''"> name like CONCAT('%','${name}','%') </if> </where> </select> 2、使用mybatis默认的对象名:value

    <select id="list" parameterType="string" resultMap="ClassroomResultMap"> select id, name from bc <where> <if test="value != null and value != ''"> name like CONCAT('%','${value}','%') </if> </where> </select>

    转载请注明原文地址: https://ju.6miu.com/read-1303427.html
    最新回复(0)