zoukankan      html  css  js  c++  java
  • MyBtis之关于#{}和${}

    1.${}的用法的mapper文件配置:

    </select>
        <select id="selById2" resultType="com.susu.pojo.People" parameterType="com.susu.pojo.People">
      select * from people where id = ${id}
      </select>
    

    测试的java代码:

    People people = new People();
    people.setId(1);
    People one = session.selectOne("com.susu.mapper.PeopleMapper.selById2", people);
    System.out.println(one);
    

    运行效果:

    可以看到,合成的sql是: select * form people where id = 1

    2.#{}用法的mapper文件配置:

    </select>
        <select id="selById2" resultType="com.susu.pojo.People" parameterType="com.susu.pojo.People">
      select * from people where id = #{id}
      </select>
    

    运行效果:

    总结#{}和${}的区别

    1. 无论是#{}还是${},都会根据括号中的内容id,去参数com.susu.pojo.People去找相应的get方法,从而从参数对象获取相应的值,来赋值给sql的id字段
    2. 不同点在于,${}的底层实现是 字符串拼接合成sql 的方式;而#{}的底层实现则是使用 占位符 的方式,
    3. #{}获取参数的内容支持 索引 获取,比如#{0}。也可以使用 param1方式 获取指定位置参数,并且sql语句使用?占位符处理
    4. ${}使用字符串拼接方式,不使用?占位符,默认找${内容}的get/set方法,如果大括号中写的是数字,则取到的数值就是该数字。
    5. 如果在xml文件中出现”<”, “>”,双引号等特殊字符时,可以使用XML文件转义符(XML自身的转义标签)

    注: ${}很少用,几乎不用!

  • 相关阅读:
    前端工程师入门的阶段
    学习能力与思考能力
    翻译 前端面试题目
    css规范
    html规范
    javascript中apply、call和bind的区别
    Javascript高级程序设计学习笔记一
    css学习笔记四
    [LC] 23. Merge k Sorted Lists
    [LC] 234. Palindrome Linked List
  • 原文地址:https://www.cnblogs.com/suhaha/p/11794128.html
Copyright © 2011-2022 走看看