zoukankan      html  css  js  c++  java
  • 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}

  • 相关阅读:
    EF架构~Dapper.Contrib不能将Linq翻译好发到数据库,所以请不要用它
    docker~aspnetcore2.0镜像缺少libgdiplus问题
    DotNetCore跨平台~Quartz定时单次任务
    Java学习笔记——JDBC之与数据库MySQL的连接以及增删改查等操作
    可爱的玩笑
    树蛙和摄影师
    axis WebServices 完美调用天气预报,查询、显示 代码!
    跟随一生的帐号密码
    [置顶] VB6基本数据库应用(三):连接数据库与SQL语句的Select语句初步
    Citrix 服务器虚拟化之九 Xenserver虚拟机的XenMotion
  • 原文地址:https://www.cnblogs.com/duanhm234/p/7749415.html
Copyright © 2011-2022 走看看