• mybatis xml参数传递详解


    StudentMapper.java

    StudentMapper.xml

    1. 传入多个String类型参数, 使用@Param注解

    List<Student> getStudent(@Param("grade")String grade, @Param("class")String class,@Param("name")String name);
    <select id="getStudent" parameterType="java.lang.String" resultType="Student">
            select nn_grade, nn_class, nn_name, nn_age, nn_sex, nn_birthdate, nn_address from student
            <where>
            <if test="grade != null and grade != ''">
                and nn_grade=#{grade}
            </if>
            <if test="class != null and class != ''">
                and nn_class=#{class}
            </if>
            <if test="name != null and name != ''">
                and nn_name=#{name}
            </if>
            </where>
        </select>

    2. 传入多个String类型参数, 使用#{0},#{1},#{2}……

    List<Student> getStudent(String grade, String class,String name);
    <select id="getStudent" parameterType="java.lang.String" resultType="Student">
            select nn_grade, nn_class, nn_name, nn_age, nn_sex, nn_birthdate, nn_address from student
            <where>
            <if test="#{0} != null and #{0} != ''">
                and nn_grade=#{0}
            </if>
            <if test="#{1} != null and #{1} != ''">
                and nn_class=#{1}
            </if>
            <if test="#{2} != null and #{2} != ''">
                and nn_name=#{2}
            </if>
            </where>
        </select>

    3. 传入多个String类型参数, 使用Map

    grade,class,name是Map的key

    List<Student> getStudent(Map param);
    <select id="getStudent" parameterType="java.util.Map" resultType="Student">
            select nn_grade, nn_class, nn_name, nn_age, nn_sex, nn_birthdate, nn_address from student
            <where>
            <if test="grade != null and grade != ''">
                and nn_grade=#{grade}
            </if>
            <if test="class!=null and class!=''">
                and nn_class=#{class}
            </if>
            <if test="name!=null and name!=''">
                and nn_name=#{name}
            </if>
            </where>
        </select>

    4. 传入多个String类型参数, 使用对象Student

    grade,class,name是Student对象的属性

    List<Student> getStudent(Student stu);
    <select id="getStudent" parameterType="Student" resultType="Student">
            select nn_grade, nn_class, nn_name, nn_age, nn_sex, nn_birthdate, nn_address from student
            <where>
            <if test="grade != null and grade != ''">
                and nn_grade=#{grade}
            </if>
            <if test="class!=null and class!=''">
                and nn_class=#{class}
            </if>
            <if test="name!=null and name!=''">
                and nn_name=#{name}
            </if>
            </where>
        </select>

    5. 传入单个基本类型和String类型等参数, 使用_parameter或#{0}

    List<Student> getStudentByName(Student stu);
    <select id="getStudentByName" parameterType="java.lang.String" resultType="Student">
            select nn_grade, nn_class, nn_name, nn_age, nn_sex, nn_birthdate, nn_address from student
            <where>
            <if test="_parameter!=null and _parameter!=''">
                and nn_name=#{_parameter}
            </if>
            </where>
        </select>
    <select id="getStudentByName" parameterType="java.lang.String" resultType="Student">
            select nn_grade, nn_class, nn_name, nn_age, nn_sex, nn_birthdate, nn_address from student
            <where>
            <if test="#{0}!=null and #{0}!=''">
                and nn_name=#{0}
            </if>
            </where>
        </select>

    6. 传入单个基本类型和String类型等参数, 使用_parameter或#{0}

  • 相关阅读:
    一款非常推荐的用户界面插件----EasyUI
    使用chart和echarts制作图表
    JS模拟实现封装的三种方法
    JavaScript面向对象(OOP)
    移动HTML5前端框架—MUI
    一款优秀的前端JS框架—AngularJS
    less和scss
    JS中的正则表达式
    JS中的数组
    js匿名函数
  • 原文地址:https://www.cnblogs.com/duanhm234/p/7749415.html
Copyright © 2020-2023  润新知