什么是MyBatis
MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射、SQL 是 MyBatis 的强大特性之一。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。
动态SQL:
什么是动态SQL,使用传统的组合拼接SQL,稍微不注意就会多出空格,导致报错,Mybatis的动态SQL功能正是为了解决这种问题,通过if,choose,when, otherwise,trim,where, set,foreach标签组合SQL语句
标签 |
说明 |
if | 条件判断,java相似 |
choose | 条件判断,是一个组合使用标签,需要搭配when、otherwise标签使用,类似java中的switch语句 |
trim | 动态添加前后缀,智能互联前后缀多余的关键字 |
where | 简化SQL语句中where关键字,智能处理and|or等关键字 |
set | 简化SQL语句中set关键字,智能处理尾部多余的逗号 |
foreach | 以遍历方式处理集合类型参数 |
if标签
if标签是MyBatis框架动态SQL常用且重要的标签之一,它的功能和java中的if判断相似
//if标签 <if test="判断条件,返回true或者false"> SQL语句 </if>
choose标签
choose标签是一个组合标签,通常和when和otherwise一起使用,功能和java中的if…else语句类似
<select id="getlist" resultType="com.xinxi2.bean.TSysUser"> SELECT * FROM `t_sys_user` <where> <choose> <when test="realname!=null and realname!='' "> and realname=#{realname} </when> <when test="password!=null and password!='' "> and password=#{password} </when> <otherwise> and acccunt is not null </otherwise> </choose> </where> </select>
trim标签
通过trim元素自定义where 元素的功能和set元素的功能,并可以智能地忽略标签前后多余的and、or或逗号等字符