1.参数占位符
1. #{} :执行SQL时,会将 #{}占位符替换为?,将来自动设置参数值
2. ${} :拼SQL,会存在SQL注入问题
3. 使用时机:
参数传递都用 #{},如果要对表名、列名进行动态设置,只能使用${}进行sql拼接。
2.parameterType:
用于设置参数类型,可以省略
3.SQL语句中特殊字符处理
可以使用转义字符 < 注意要加分号
也可以使用 <![CDATA[内容,如< ]]>
动态查询
有时候输入查询条件时,并不会把所有条件写上时,需要使用动态查询
原先的条件查询语句:
<select id="selectByCondition" resultType="com.xxxx.entity.Brand"> select * from tb_brand where status=#{status} and compant_name like #{companyName} and brand_name like #{brandName} </select>
动态查询语句:(加条件判断)
<select id="selectByCondition" resultType="com.xxxx.entity.Brand"> select * from tb_brand where <if test="status != null"> status=#{status} </if> <if test="companyName != null and companyName != ''" > and compant_name like #{companyName} </if> <if test="brandName!=null and brandName!=''"> and brand_name like #{brandName} </if> </select>
存在问题:如果第一个条件不存在的话就会报错
解决方案:1.添加恒等式
2.通过MyBatis提供的<where>标签来替换where这个关键字
到时候会自动判断,添加where 如果是第一个标签会帮我们主动去掉and
原文地址:http://www.cnblogs.com/hmy22466/p/16826500.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性