zoukankan      html  css  js  c++  java
  • 两种取值符号的异同

    输入参数:parameterType
    1.输入为简单类型(八个基本类型+String)
    a.#{}  ${}
    #{任意值}
    ${value},其中的标识符只能是value

     <select id="queryStudentByStuno" parameterType="int" resultMap="studentMapping">
        select * from student1 where stuno=#{任意值}
    </select> <select id="queryStudentByStuno" parameterType="int" resultMap="studentMapping"> select * from student1 where stuno=${value}
    </select>

    b.#{}自动给String类型加上单引号(自动类型转换)

    ${}原样输出,但是适合于动态排序

    delete from student1 where stuno=#{value}
    delete from student1 where stuno='${value}'
     <select id="queryStudentOrderByColumn" resultType="student">
        select stuno,stuname,stuage from student1 order by ${value} asc
      </select>//排序成功
    
     <select id="queryStudentOrderByColumn" resultType="student">
        select stuno,stuname,stuage from student1 order by #{value} asc
       </select>//排序无效

    c.#{}可以防止sql注入

    ${}不可以

    #{}${]相同之处

    a.都可以获得对象的值(嵌套类型对象)

    i.获取对象值:

    模糊查询方式一:

    select stuno,stuname,stuage from student1 where stuage=#{stuAge} or stuname like #{stuName}

    Student student=new Student();

    student.setStuAge(23);
    student.setStuName("%m%");
    List<Student> students = studentMapper.queryStudentByStuageOrStuname(student);

    模糊查询方式二:

    select stuno,stuname,stuage from student1 where stuage=#{stuAge} or stuname like '%${stuName}%'
    
    
    Student student=new Student();
    student.setStuAge(23);
    student.setStuName("%m%");
    List
    <Student> students = studentMapper.queryStudentByStuageOrStuname(student);

    ii.嵌套类型对象

    <select id="queryStudentByaddress" parameterType="student" resultType="student">
        select stuno,stuname,stuage from student1 where homeaddress=#{address.homeAddress} or schooladdress='${address.schoolAddress}'
     </select>
    
    
    
            
    Address address=new Address();
    address.setHomeAddress("china");
    address.setSchoolAddress("x");
            
    Student student=new Student();
    student.setAddress(address);
    List<Student> students = studentMapper.queryStudentByaddress(student);
  • 相关阅读:
    第02组 Beta冲刺 总结
    第02组 Beta冲刺 (5/5)
    第02组 Beta冲刺 (4/5)
    第02组 Beta冲刺 (3/5)
    第02组 Beta冲刺 (2/5)
    第02组 Beta冲刺 (1/5)
    关于IE6中做兼容的那点事。
    一个ajax同步与异步引发的血案。
    浅谈Jquery中的bind(),live(),delegate(),on()绑定事件方式
    浅谈Dictionary用法
  • 原文地址:https://www.cnblogs.com/mayouyou/p/13214814.html
Copyright © 2011-2022 走看看