mybatis-1
2016-01-02 23:30
387 查看
1 映射
1.1文件的映射
注意xml文件一定要规范,xml文件如果在最前面的<?xml 加个空格,就是报错,这种错误极其难找,所以碰到这种操蛋问题可费神,规范极其重要
1.2表,字段的映射
伦理片 http://www.dotdy.com/
property 对应对象的属性名,column为列名或者列的别名,javaType或者jdbcType都可以对应,对于基本数据类型,比如MyEntity的Integerid是主键,要用id标签,jdbcType是java.sql.jdbcType下的类型,都是大写的,javaType下如果是基本的数据类型可以直接写java.lang.Integer或者Integer都可以,这里的例子是javaType,项目中用的最多的是jdbcType。type是要写类的全名,id是标示,id标示可以提供给其他用,比如select标签,select语句查询的内容映射的是resultMap的type对应的类属性
1.3 resultMap和resultType映射
resultMap映射到resultMap的唯一标示id,间接的映射到entity对象,比如select里面的resultMap属性,在resultMap标签里面是可以做类型转换的,typeHander=
resultType 映射到一个全定名的java类,可以是一个Map,可能是entity,如果是Map,mybatis会把查询的结果集放到Map集合中,resultType必须保证java属性和查询结果的一致性,而且利用resultType没法利用类型转换
2 传参
mybatis都给提供了参数
Java代码
<E> List<E> selectList(String statement, Object parameter);
那么xml配置可以通过 #{xxxx} 传递参数,如果是一个entity,xxxx就代表他的属性名
mybatis采用了预编译方法,#{}会被解析成? ${}会被解析成= ,所以对字段排序的时候${}可以用上场
3 ONGL
ONGL 在struts2也有,mybatis也有,mybatis的ONGL 是可以直接用entity属性名的,而且还可以调用java的方法,常见的有
if判断
对于entity if标签可以直接用entity的属性
循环:
Java代码
<delete id="deleteBatch" parameterType="java.util.List">
delete from MyEntity where id in(
<foreach collection="list" item = "item" separator=",">
#{item}
</foreach>
)
</delete>
影音先锋电影 http://www.iskdy.com/
<where>
Java代码
<where>
<if test="title!=null and ! " ".equals(title.trim())"></if>
</where>
<set> 只用于update语句中
Java代码
<set>
<if test="title!=null and ! " ".equals(title.trim())">title=${title},</if>
</set>
ongl的引用
<trim> 可以替代where或者set
如
Xml代码
<trim prefix="where" prefixOverrides="and/or">
<!-- ...........与where效果一样 截取前缀的and或者or -->
</trim>
<trim prefix="set" suffixOverrides=",">
<!-- ...........与set效果一样 截取前缀的逗号 -->
</trim>
<choose> 当if判断极其复杂的时候 代替if else if语句
相关文章推荐
- 从腾讯QQ升级游戏之“快速加入游戏”功能的实现缺陷看C/S之间如何正确分配相关协作
- 关于代理的那些事
- 【模式匹配】更快的Boyer-Moore算法
- netty5笔记-总体流程分析3-ChannelHandlerContext
- 从腾讯QQgame高性能服务器集群架构看“分而治之”与“自治”等分布式架构设计原则
- netty5笔记-总体流程分析3-ChannelHandlerContext
- 软件设计之模块划分
- 数据读写的性能优化
- make: Nothing to be done for 'all'
- Smallest Difference(Poj2718)(枚举全排列next_Permutation)
- oracle 游标实例
- 动画封装一:实现水平匀速运动
- Fiddler工具的基本功能
- uva 10963 - The Swallowing Ground
- FLV科普11 FLV视频信息
- 基于机器视觉的工业机器人定位系统
- Operating System-进程/线程内部通信-管程(Monitor)介绍,实现以及应用
- 初始HTML(4)——链接
- Python-3------新年考试周的Python学习
- Shell编程进阶 2.0 shell中断继续退出