MyBatis 今天大年初一,你在学习!不学习做什么,斗地主...人都凑不齐。学习吧,学习使我快乐!除了诗和远方还有责任,我也想担当,我也想负责,可臣妾做不到啊,怎么办?你说怎么办,为啥人家能做到你做不到,因为人家比你多做了那么一点点。哪一点点?就那么一点点,只要你也多做那么一点点,不就做到了!...就那么一点点呀,我回顾SE去了。万丈高楼平地起,基础打的牢,怕什么狂风暴雨 MyBatis 动态SQL
MyBatis为了解决通过一些不确定性的条件进行SQL语句的拼接操作的问题, 提供了动态SQL. 具体来说,就是提供了一些标签 <if> <where> <trim> <set> <choose> <foreach> 等.写出可扩展SQL语句
MyBatis 采用功能强大的基于 OGNL 的表达式来简化操作
OGNL( Object Graph Navigation Language )对象图导航语言,这是一种强大的表达式语言,通过它可以非常方便的来操作对象属性。 类似于EL表达式,例:
访问对象属性: person.name
调用方法: person.getName()
调用静态属性/方法: @java.lang.Math@PI
调用构造方法: new com.bean.Person(‘admin’).name
运算符: +,-*,/,%
逻辑运算符: in,not in,>,>=,<,<=,==,!=
注意:xml中特殊符号如”,>,<等这些都需要使用转义字符
标签
1) <if>:用于完成简单的判断.只有一个属性 test 用于判断条件是否成立
2) <where>:在SQL语句中添加WHERE关键字, 作用:去掉 where 后面第一个条件前面的 and / or 。
<select id="getBook" resultType="main.beans.Book"> SELECT id,title,author,price FROM books <where> <if test="id != null"> and id= #{id}</if> <if test="title != null"> and title = #{title}</if> </where> </select>