MyBatis 的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强 大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进 行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 就是针对 SQL构建的,并 且比普通的方法做的更好.
SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序)
1 cache 给定命名空间的缓存配置
2 cache-ref 其他命名空间的缓存配置的引用
3 resultMap 是最富复杂也是最强大的元素,是用来描述如何从数据库结果集中来加载对象
4 sql – 可被其他语句引用的可重用语句块
5 insert – 映射插入语句
6 update – 映射更新语句
7 delete – 映射删除语句
8 select – 映射查询语句
1.Select 元素标签使用
select 基本数据类型 查询 所有内容都是输入也是输出
** 除了查询需要写返回结果类型 其他三类都不需要 默认返回 int**
输入参数分类 :基本类型,字符串,java bean,map,数组(删除操作时体现),List(添加时体 现)
结果类型分类 :基本数据类型,字符串,JavaBean,Map,List 等
输入参数类型:
输出类型分类(结果类型分类):
与之相对应的mapper:
添加:
更新:
删除:
与之相对应的mapper
Mybatis之动态sql:
1 基于xml配置:
**MyBatis 的强大特性之一便是它的动态 SQL。**如果你有使用 JDBC 或其他类似 框架的经验,你就能体会到根据不同条件拼接 SQL语句有多么痛苦。拼接的时候要确 保不能忘了必要的空格,还要注意省掉列名列表最后的逗号。利用动态 SQL 这一特性 可以彻底摆脱这种痛苦。它借助ognl(类似于jsp里面的el表达式)表达式来完成动 态sql的拼接使得非常简便。
if条件判断:
使用if标签就是加一个test属性作为判断, 如果有多个条件组合判断的话用and, or 连接
2.choose,when,otherwise选择器使用:
我们不想用到所有的条件语句,而只想从中择其一二。针对这种情况,MyBatis 提供 了 choose 元素,它有点像 Java 中的 switch 语
3.trim,where,set
where标签会判断是否需要and
trim: prefix 前置 prefixOverrides 重写and
set:set 自动识别是否需要逗号
上下两个效果一样