1. 比较#和$的区别

  • #是占位符?,$是字符串拼接。因此使用$的时候,如果参数是字符串类型,那么要使用引号
  • 尽量使用#而不是$
  • 当参数表示表名或列名的时候,只能使用$

2. 多参数时候

  • 配置文件中使用索引#{0}、#{1}代表第几个参数
  • 在接口中使用注解@Param命名,在配置文件中使用注解的命名
  • 接口使用Map类型作为形参,配置文件使用Map的key作为名称

3. 通过配置节点属性,可以把插入时候自动生成的key set回到对象中;也可以配置子节点在插入操作前执行SQL得到id存放入对象中

4. 动态SQL:属性内直接使用变量名(单变量使用value)

  • 判断
<if test="value !=null and value!=''"></if>
  • 选择
<choose>
<when test=''></when>
<when test=''></when>
<otherwise></otherwise>
</choose>
  • 增加where关键字并格式化条件语句(处理and、or问题)
<where></where>    
  • 增加set关键字并格式化(处理列后带逗号问题)
<set></set>
  • 进行增加前缀和删除前后某个字符串
<trim></trim>
  • 循环(传递的对象是List则能用list,如果为数组,则能用array作为键,如果加了@Param则直接以该值为键)
<foreach collection=“” item=“” open="(" colse=")" separator=",">

</foreach>
  • SQL片段(需要先定义片段,再在CRUD中使用)
<sql id=“id1”></sql>
<include refid="id1"></include>

5. 逆向工程

6. 嵌套查询

  • 1对1(1对象中包含对象):在<resultMap>中配置<association>
  • N对1(N对象中包含对象):在<resultMap>中配置<association>
  • 1对N(1对象中包含集合):在<resultMap>中配置<collection column="集合中对象的ID列名">
  • 联合查询(类似1对1):在<resultMap>中配置<association>

7. 扩展结果集

8. 构造方法映射

<resultMap>
<constructor>
</constructor>
</resultMap>

9. 鉴别器:根据鉴别列返回不同的子类对象

<resultMap>
<discriminator>
</discriminator>
</resultMap>

10. 延迟加载

  • 延时加载:调用属性时才加载,不调用则不加载
  • 积极延时加载:调用属性时把关联对象也加载,不调用不加载
  • 非积极延时加载:调用关联对象属性时才加载,不调用不加载

2019-04-04 Mybatis学习知识点的更多相关文章

  1. Mybatis学习04

    title: Mybatis学习04 date: 2020-01-20 21:48:00 tags:Mybatis学习的第四篇笔记 这次的笔记主要是mybatis中的注解 <!--more--& ...

  2. springmvc 项目完整示例04 整合mybatis mybatis所需要的jar包 mybatis配置文件 sql语句 mybatis应用

    百度百科: MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBat ...

  3. ubuntu16.04系统深度学习开发环境、常用软件环境(如vscode、wine QQ、 360wifi驱动(第三代暂无))搭建相关资料

    事后补充比较全面的(找对资料真的省一半功夫):https://www.jianshu.com/p/5b708817f5d8?from=groupmessage Ubuntu16.04 + 1080Ti ...

  4. MyBatis:学习笔记(3)——关联查询

    MyBatis:学习笔记(3)--关联查询 关联查询 理解联结 SQL最强大的功能之一在于我们可以在数据查询的执行中可以使用联结,来将多个表中的数据作为整体进行筛选. 模拟一个简单的在线商品购物系统, ...

  5. MyBatis学习总结(三)——多表关联查询与动态SQL

    在上一章中我们学习了<MyBatis学习总结(二)——MyBatis核心配置文件与输入输出映射>,这一章主要是介绍一对一关联查询.一对多关联查询与动态SQL等内容. 一.多表关联查询 表与 ...

  6. (转)2019年 React 新手学习指南 – 从 React 学习线路图说开去

    原文:https://www.html.cn/archives/10111 注:本文根据 React 开发者学习线路图(2018) 结构编写了很多新手如何学习 React 的建议.2019 年有标题党 ...

  7. MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)

    本文转载自:http://www.cnblogs.com/jpf-java/p/6013540.html 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybati ...

  8. MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合(转载)

      孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(八)--Mybatis3.x与Spring4.x整合 一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: m ...

  9. MyBatis学习总结(七)——Mybatis缓存(转载)

      孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(七)--Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的 ...

随机推荐

  1. SmartCode.ETL 这不是先有鸡还是蛋的问题!

    继国庆节 SmartCode 正式版(SmartCode.Generator)发布之后,SmartCode 迎来了新的能力 SmartCode.ETL ! SmartCode 正式版从开始发布就从未说 ...

  2. Python数据采集——提取页面内容的几种手段

    前言 在我们获取了网页的信息后,往往需要对原始信息进行提取,得到我们想要的数据.对信息的提取方式主要有以下几种:正则表达式.XPath.BeautifulSoup.本篇博客主要总结这三种方式的基本语法 ...

  3. JMeter主要组件介绍

    JMeter主要组件介绍   转自https://www.cnblogs.com/linbo3168/p/6023962.html 作者:linbo.yang 1.测试计划(Test Plan)是使用 ...

  4. 第66章 视频 - Identity Server 4 中文文档(v1.0.0)

    第66章 视频 66.1 2019 January [NDC] - 使用ASP.NET Core 2.2和3.0保护Web应用程序和API 1月[NDC] - 为基于OpenID Connect / ...

  5. [转帖]无网络离线安装 vs2017

    无网络离线安装 vs2017 公司电脑禁止,只有一个老的vs2017的安装目录(之前通过 --layout 安装时生成的离线文件).找了一圈百度,没能解决问题,最后,问bing,查微软的官方网站命令, ...

  6. Spring入门(三):通过JavaConfig装配bean

    上一篇博客中,我们讲解了使用组件扫描和自动装配实现自动化装配bean,这也是最好的使用方式. 但是某些场景下,我们可能无法使用自动装配的功能,此时就不得不显式的配置bean. 比如我们引用了一个第三方 ...

  7. vue路由懒加载 及import

  8. 重拾《 两周自制脚本语言 》- Eclipse插件实现语法高亮

    源码库: program-in-chinese/stone-editor-eclipse 参考: FAQ How do I write an editor for my own language? D ...

  9. 解决PostGIS打开shp文件输入输出模块出现"找不到文件libintl-9.dll"的问题

    找到shp2pgsql-gui.exe这个程序的目录 复制一份libintl-8.dll副本,改名为libintl-9.dll即可.

  10. Android为TV端助力 Linux命令查看包名类名

    先运行apk 再输入logcat | grep START 查看当前启动apk的包名和类名 adb shell "pm list packages -f | grep com.yulong. ...