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自身的转义标签)

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

  • 相关阅读:
    Robot Framework(一)安装笔记
    Postman之获得登录的token,并设置为全局变量
    Postman之简单使用
    Postman之前言
    LoadRunner之使用JSEESIONID访问网站
    Jmeter之逻辑控制器/定时器
    android 解决小米手机上选择照片路径为null情况
    spring MVC学习之二
    Spring MVC学习一
    Struts学习总结(一)
  • 原文地址:https://www.cnblogs.com/suhaha/p/11794128.html
Copyright © 2011-2022 走看看