MyBatis相关内容(自学简记)

1. 含义

        是一个轻量级的ORM(对象关系映射)框架,建立java与数据库连接操作的持久层框架。

2. 封装了JDBC,JDBC操作过程

        

3. #{}和${}的区别

        注意:使用#{}可以很好的避免sql注入(安全)

        1)#{}

                a. 将传入的数据解析成字符串,会自动补充引号。

                b. 表示占位符,即sql中的?,实现的是向prepareStatement中的预处理语句中设置参数值。

        2)${}

                a. 表示sql语句,sql中不支持占位符表示的地方,都可使用。

                b. 将传入的数据解析成sql语句,不自动补充引号,直接显示。

                c. sql注入例子

                       

        3)模糊查询时使用#{}和${}

                a. CONCAT('%', '#{value}', '%')

                b. '%${value}%'

        4)只能使用${}的场景

                a. order by

                b. group by

                c. 查询时的字段名

                d. 表名

4. 常用标签

        1)if标签搭配test属性进行验证,做为单条件分支判断。

                

        2)choose、when、otherwise标签搭配使用,使用test属性进行验证。

                a. choose标签:顶层多条件分支标签,单独使用无意义。

                b. when标签:内嵌于choose标签,当满足某个when条件时,执行对应代码块,并终止跳出choose标签,choose标签中至少存在一个when标签,否则无意义。

                c. otherwise标签:内嵌于choose标签,当不满足所有when条件时,执行otherwise标签,choose标签中至多存在一个otherwise标签,可以不存在。

                d. test属性:作为when和otherwise标签的属性,进行条件验证。

                        

        3)foreach标签,搭配collection、item、index、open、close、separator属性使用。

                a. foreach标签:顶层遍历标签,单独使用无意义。

                b. collection属性:必填,列表名称。

                c. item属性:必填,遍历的每个变量值名称(对象或基础类型)。

                d. index属性:索引。

                e. open属性:循环内容开头拼接的字符串,非必填。

                f. close属性:循环内容结尾拼接的字符串,非必填。

                g. separator属性:每次循环的分隔符。

                        

        4)where标签,搭配if标签使用。

                a. 子元素有内容才会返回where关键字。

                b. 智能替换子句开头的and或or。

        5)set标签,搭配if标签使用。

                a. 子元素有内容才会返回set关键字。

                b. 智能去除子句开头或结尾的逗号。

        6)trim标签,搭配prefix、suffix、prefixesToOverride 、suffixesToOverride 属性使用。

                a. prefix属性:前缀,当trim元素中存在内容时,插入指定前缀。

                b. suffix属性:后缀,当trim元素中存在内容时,插入指定后缀。

                c. prefixesToOverride属性:前缀去除,支持多个,当trim元素中存在内容时,把内容的前缀字符串去除。

                d. suffixesToOverride属性:后缀去除,支持多个,当trim元素中存在内容时,把内容的后缀字符串去除。

                

        7)sql+include标签

                a. sql标签:定义可重用的sql语句片段,通过id属性来定位。

                b. include标签的refid属性:通过引用sql标签的id名称匹配到可重用的sql语句片段。

        8)resultMap标签

                a. extends属性:可以实现存在继承关系的两个实体的映射,填父类resultMap的id或者父类命名空间.父类resultMap的id。

                b. result子标签:普通结果映射。

                c. association子标签:嵌套结果映射,多表现为一个对象。

                d. collection子标签:嵌套结果映射,集合。

                

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值