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

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

  • 相关阅读:
    LibSVM文本分类之工程中调用LibSVM进行文本分类
    交叉验证–Cross validation
    SkySeraph博主的GLCM特征学习
    Libsvm分类步骤
    VC技巧
    转载 libsvm vc 移植 实现多类分类
    FANN学习2之建立简单工程
    开源库FANN学习笔记1
    忙了一上午终于把形状特征搞定了啊
    终于看到结果了
  • 原文地址:https://www.cnblogs.com/suhaha/p/11794128.html
Copyright © 2011-2022 走看看