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语句的过程。
相关文章推荐
- javascript判空问题
- 九蒸九晒黑芝麻
- KVM技术
- 使用 HttpClient 4 进行文件上传
- C——字符串练习
- C++的Json解析库:jsoncpp和boost
- hdu1143 Tri Tiling
- 2015 GOOGLE I/O大会看点总结:新的开发工具及云端测试工具
- emacs 转码
- U3d中的音频研究
- iptables 笔记
- Flash制作雾效果
- 重点block
- 轮廓提取--findContours()和drawContours()
- silverlight RIA Service增删改查问题
- 蛋疼的cross compile
- 彻底搞懂字符编码(unicode,mbcs,utf-8,utf-16,utf-32,big endian,little endian...)
- 虚幻4随笔 三 从UE3到UE4
- HDU 4738 — Caocao's Bridges 判桥
- C# 控制台程序 托盘图标 事件响应