2019-04-04 Mybatis学习知识点
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学习知识点的更多相关文章
- Mybatis学习04
title: Mybatis学习04 date: 2020-01-20 21:48:00 tags:Mybatis学习的第四篇笔记 这次的笔记主要是mybatis中的注解 <!--more--& ...
- springmvc 项目完整示例04 整合mybatis mybatis所需要的jar包 mybatis配置文件 sql语句 mybatis应用
百度百科: MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBat ...
- ubuntu16.04系统深度学习开发环境、常用软件环境(如vscode、wine QQ、 360wifi驱动(第三代暂无))搭建相关资料
事后补充比较全面的(找对资料真的省一半功夫):https://www.jianshu.com/p/5b708817f5d8?from=groupmessage Ubuntu16.04 + 1080Ti ...
- MyBatis:学习笔记(3)——关联查询
MyBatis:学习笔记(3)--关联查询 关联查询 理解联结 SQL最强大的功能之一在于我们可以在数据查询的执行中可以使用联结,来将多个表中的数据作为整体进行筛选. 模拟一个简单的在线商品购物系统, ...
- MyBatis学习总结(三)——多表关联查询与动态SQL
在上一章中我们学习了<MyBatis学习总结(二)——MyBatis核心配置文件与输入输出映射>,这一章主要是介绍一对一关联查询.一对多关联查询与动态SQL等内容. 一.多表关联查询 表与 ...
- (转)2019年 React 新手学习指南 – 从 React 学习线路图说开去
原文:https://www.html.cn/archives/10111 注:本文根据 React 开发者学习线路图(2018) 结构编写了很多新手如何学习 React 的建议.2019 年有标题党 ...
- MyBatis学习总结(二)——使用MyBatis对表执行CRUD操作(转载)
本文转载自:http://www.cnblogs.com/jpf-java/p/6013540.html 上一篇博文MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybati ...
- MyBatis学习总结(八)——Mybatis3.x与Spring4.x整合(转载)
孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(八)--Mybatis3.x与Spring4.x整合 一.搭建开发环境 1.1.使用Maven创建Web项目 执行如下命令: m ...
- MyBatis学习总结(七)——Mybatis缓存(转载)
孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(七)--Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的 ...
随机推荐
- java~springboot~ibatis Invalid bound statement (not found)原因
事实起因 最近在ORM上使用了ibatis,感觉挺繁琐的,没有jpa来的直接,但项目非要用也没有办法,最近在进行开发过程中出现了一个问题Invalid bound statement (not fou ...
- WebApiClient的SteeltoeOSS.Discovery扩展
1 背景 从园子里看到一些朋友在某些项目开发中,选择的架构是spring cloud搭建底层微服务框架,dotnet core来编写业务逻辑,SteeltoeOSS.Discovery是dotnet和 ...
- .NET Core:多样的宿主
.NET Core 可以以以下方式作为宿主运行: IIS 控制台 Windows服务 运行启动代码: public static void Main(string[] args) ...
- 2014年第五届蓝桥杯javaB组 试题 答案 解析
1.武功秘籍 小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的).他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上. 小明只想练习该书的第81页到 ...
- 【译】.NET 跨平台界面框架和为什么你首先要考虑再三
现在用 C# 来开发跨平台应用已经有很成熟的方案,即共用非界面代码,而每个操作系统搭配特定的用户界面代码.这个方案的好处是可以直接使用操作系统原生的控件和第三方控件,还能够和操作系统深度集成. 这里的 ...
- 阅读笔记:基础知识(Java篇)
1. GC机制(垃圾回收机制) 找到垃圾的方法:引用计数法.可达性分析法 回收垃圾的方法:标记清除算法.复制算法.标记整理法.分代算法 2. JVM内存划分 线程私有:程序计数器.JVM虚拟机栈.本地 ...
- Android Studio错误日志-注解报错Annotation processors must be explicitly declared now.
导入项目时,发现之前项目的butter knife报错,用到注解的应该都会报错Error:Execution failed for task ':app:javaPreCompileDebug'.&g ...
- Log4j配置(xml和property两种)
本文章为转载记录,纯粹个人备忘. 一.log4j.properties 的使用详解 1.输出级别的种类 ERROR.WARN.INFO.DEBUGERROR 为严重错误 主要是程序的错误WARN 为一 ...
- 解决Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile
原因: 由于项目所需jdk版本和你当前使用的jdk版本不一致导致的,因为我项目的pom.xml中定义了java版本为1.8,但是我实际idea中run这个项目却是1.7 解决方案: 更换当前jdk版本 ...
- 数据压缩算法---LZ77算法 的分析与实现
LZ77简介 Ziv和Lempel于1977年发表题为“顺序数据压缩的一个通用算法(A Universal Algorithm for Sequential Data Compression )”的论 ...