mybatis常用标签
<if>标签
if元素是最常用的判断语句相当于java中的if语句,他常常与test属性联合使用,if test 就相当于判定, 若符合标签标签中的条件,则在SQL语句上添加<if></if>内的条件下面代码实战我们会详细讲到
增删改查就不说了。
<where>标签
where标签经常跟if标签搭配使用,where标签会判断if标签里的条件是否成立,如果有条件成立则会拼接执行该条件下的sql语句。where标签避免所有条件都为空的时候出现“select * from user where ”这种会出错的情况,当然我们也可以在where后面加入“1=1”简单的解决。
<set>标签
set标签一般用在update语句中,set标签与where标签类似,当我们在update语句里碰到多个字段相关的问题,在这种情况下我们就会用到set标签,他也是判断if标签里的条件是否成立,然后拼接执行sql语句。
<choose>标签
相比于if标签二选一,choose标签就有了第三种选择,或者更多的选择,在映射器的动态语句中使用choose..when..otherwise..这三个元素就能满足不同的业务要求,Mybatis会根据参数的设置进行判断,来拼接组装sql语句,当when标签下无满足条件,则会执行otherwise标签里的语句。
<foreach>标签
foreach元素是一个循环语句,他的作用是遍历集合,他能够很好的支持数组和List的集合。并对此提供遍历,foreach标签常用于in这样的语法里,进行批量处理
resultMap 标签
基本作用:建立SQL查询结果字段与实体属性的映射关系信息
查询的结果集转换为java对象,方便进一步操作
将结果集中的列与java对象中的属性对应起来并将值填充进去
例:
<resultMap id="getStudentRM" type="EStudnet">
<id property="id" column="ID"/>
<result property="studentName" column="Name"/>
<result property="studentAge" column="Age"/>
</resultMap>
<select id="getStudent" resultMap="getStudentRM">
SELECT ID, Name, Age
FROM TStudent
</select>
标签说明:
主标签
id:该resultMap的标志
type:返回值的类名,此例中返回EStudnet类
子标签:
id:用于设置主键字段与领域模型属性的映射关系,此处主键为ID,对应id。
result:用于设置普通字段与领域模型属性的映射关系
trim标签
trim是更灵活的去处多余关键字的标签,他可以实践where和set的效果。
where例子的等效trim语句:
<!-- 查询学生list,like姓名,=性别 -->
<select id="getStudentListWhere" parameterType="StudentEntity" resultMap="studentResultMap">
SELECT * from STUDENT_TBL ST
<trim prefix="WHERE" prefixOverrides="AND|OR">
<if test="studentName!=null and studentName!='' ">
ST.STUDENT_NAME LIKE CONCAT(CONCAT('%', #{studentName}),'%')
</if>
<if test="studentSex!= null and studentSex!= '' ">
AND ST.STUDENT_SEX = #{studentSex}
</if>
</trim>
</select>
SQL标签
更多用于写sql语句的一部分,写在配置文件中的常量
include标签
用于引用常量
----------------------------------------------------------------------
----------------------------------------------------------------------
mybatis 除了使用xml方式还有别的方式吗?
还可以吧xml改为Mapper接口