JavaEE进阶(Mybatis)5/31

目录

1. SQL注入

2.concat()用于like模糊查询

3.resultMap

4.

5.动态SQL

6.foreach标签


1. SQL注入

$问题会导致SQL注入       

 因为$是直接替换的,and的优先级高于or

true or false

#不存在SQL注入的问题,因为他是预编译的,他先把#{ }的内容替换为?占位符然后把这个占位符替换掉,MySQL认为它不是关键字,而是值

一个是直接替换,一个是把他当作值处理了

2.concat()用于like模糊查询

concat是MySQL中的方法

3.resultMap

作用

        1.我们知道resultType要求java属性和数据库字段保持一致,如果不一致的话就不能查 询。使用resultMap可以解决这个不一致的问题

        2.一对一和一对多关系可以使用resultMap映射并查询数据         

如果数据库的column和对象的property名字不一致还可以把SQL语句重命名(使用的比较多)

4.

 对该类的实例的打印只会打印username,不会打印它父类的属性@Date注解的缺点

当Lombok提供toString用户还重写toString的话优先调用用户写的

实体 类需要写Serializable接口 可序列化

5.动态SQL

if标签

<if test="xxx!=null">

xxx,

</if>

 

trim标签

<trim pre   suf   ><trim>

 suffixOverrides","表示把尾部的,去掉

where标签

Where标签自动去除最前面的and   不用再trim去除了,一定配合if使用

 如果where标签无内容,则不会生成sql关键字where        

 

set标签

set是去掉最后的一个,的

set是update更新的

 

 

6.foreach标签

批量的(操作)删除 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值