您的位置:首页 > 其它

MyBatis标签

2015-06-06 16:23 267 查看

增删改查

<select id="" parameterType="" resultMap=""></select>
<insert id="" parameterType=""></insert>
<update id="" parameterType=""></update>
<delete id="" parameterType=""></delete>


从标签名称可以看出分别表示了sql语句中的select、insert、update、delete

id:标签的标识,同命名空间唯一

parameterType:参数类型,基本数据类型直接写类型名,自定义类型或不在java.lang包下的类写全路径如java.util.date

resultMap:返回值类型,需自定义resultMap标签

返回值类型

<resultMap id="UserRusult" type="cn.elinzhou.bean.User">
<id column="ID" jdbcType="INTEGER" property="id"/>
<result column="Name" jdbcType="VARCHAR" property="name"/>
</resultMap>


参数:

id:resultMap的标识,命名空间唯一

type:对应的bean类型,需要写全路径

字标签:

id:主键

result:非主键

子标签参数:

column:查询结果中的字段名(不是数据库字段名,如果用了AS,则为自定义的名称)

jdbcType:该字段的类型,如INTEGER,VARCHAR等

property:bean中的变量名

流程控制

遍历

<foreach collection="" item="" separator="" index="" ></foreach>


collection:要遍历的集合

item:当前遍历到的对象

separator:遍历到的对象之前的分隔符

index:当前遍历对象的索引

单条件分支

<if test=""></if>


test:判断语句,使用OGNL表达式

多条件分支

<choose>
<when test=""></when>
<when test=""></when>
<when test=""></when>
<when test=""></when>
<otherwise></otherwise>
</choose>


test:判断语句,使用OGNL表达式

该标签相当于java中的

if (){

}else if (){

}else if (){

}else if (){

}else if (){

}else{

}


格式控制

where

<where></where>


在该标签中拼接sql语句,如果内部有语句则自动拼接where关键词。多条语句之前的and/or会根据是否存在其他条件而决定是否删除。例如只有一条判断语句,则该语句前的and/or将自动删除

set

<set></set>


在该标签中拼接sql语句,如果内部有语句则自动拼接set关键词。多条语句后的逗号会根据是否存在其他条件而决定是否删除。例如只有一条判断语句,则该语句后的逗号将自动删除

trim

<!--该条语句等同与where标签-->
<trim prefix="where" prefixOverrides="and"></trim>
<!--该条语句等同与set标签-->
<trim prefix="set" suffixOverrides=","></trim>


trim原理同where和set标签,只是多了自定义属性,可模仿上述两句定义自己需要的标签

多表关系

一对多关系

<collection property="" resultMap=""/>


该标签需要写在resultMap中,用来表示当前模型所包含的多个子模型,相当于表关系中的一对多关系

property:bean中对应的变量名

resultMap:子模型的resultMap标识

多对一关系

<association property="" resultMap=""/>


该标签需要写在resultMap中,用来表示当前模型所属的父模型,相当于表关系中的多对一关系

property:bean中对应的变量名

resultMap:父模型的resultMap标识

语句定义与引用

<sql id=""></sql>
<include refid=""/>


sql标签内定义一个字符串,include在需要书写sql语句的地方将其引入,省去重复书写sql语句的过程。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: