zoukankan      html  css  js  c++  java
  • java ssm框架 mapper文件里的#符号和$符号的区别

    Java SSM框架里面,Mapper.xml文件

    (一)#符号生成的sql语句是作为传参的

    <!-- 获得数据列表(包括课程相关信息) -->
      <select id="GetListByUidAndType" resultMap="BaseResultMap" parameterType="Map">  
        select
        <include refid="Base_Column_List" />
        from my_favorites
        where uid=#{uid} and type=#{type}
        <if test="strWhere !=''">
            and #{strWhere}
        </if>    
        <if test="filedOrder!=''">
            order by #{filedOrder}
        </if>        
        limit #{page.startPos},#{page.pageSize}
      </select>
    DEBUG - ==>  Preparing: select nid, uid, title,brief, key_value, type, addtime from my_favorites where uid=? and type=? order by ? limit ?,? 
    DEBUG - ==> Parameters: 1(String), 1(Integer), addtime desc(String), 0(Integer), 10(Integer)

    (二)而$符号生成的sql语句是作为占位符显示的

     <!-- 获得数据列表(包括课程相关信息) -->
      <select id="GetListByUidAndType" resultMap="BaseResultMap" parameterType="Map">  
        select
        <include refid="Base_Column_List" />
        from my_favorites
        where uid=${uid} and type=${type}
        <if test="strWhere !=''">
            and ${strWhere}
        </if>    
        <if test="filedOrder!=''">
            order by ${filedOrder}
        </if>        
        limit ${page.startPos},${page.pageSize}
      </select>
    DEBUG - ==>  Preparing: select nid, uid, title,brief, key_value, type, addtime from my_favorites where uid=1 and type=1 order by addtime desc limit 0,10 
    DEBUG - ==> Parameters:

     (三)需要注意的是:当strWhere为拼接sql语句字符串时,如status=1,这时候使用#号会查不出结果,必须使用$号作为变量

    <select id="GetRecordCount" resultType="java.lang.Integer" parameterType="Map">
            select count(*) from course_books
            <if test="strWhere !=''">
                where ${strWhere}
            </if>
            <if test="filedOrder!=''">
                order by #{filedOrder}
            </if>
    </select>
  • 相关阅读:
    彭明辉教授-《研究生完全求生手册》
    使用npm创建一个命令行工具
    #!/usr/bin/python与#!/usr/bin/env python的区别
    使用node+express搭建第一个node后端项目
    使用npm创建一个程序库包
    多项式多点求值
    2. 两数相加
    CSS实现子元素自动充满父元素的剩余空间
    侧边导航栏滚动条---CSS overflow实现
    Asp.NET Core简介
  • 原文地址:https://www.cnblogs.com/jronny/p/9436902.html
Copyright © 2011-2022 走看看