mybatis-1
2015-12-31 06:06
381 查看
mybatis 支持注解支持sql.方便与spring集成。
1 映射
1.1文件的映射
注意xml文件一定要规范,xml文件如果在最前面的<?xml 加个空格,就是报错,这种错误极其难找,所以碰到这种操蛋问题可费神,规范极其重要
<mapper resource="com/xx/xxx/xxx/XXXMapper.xml"/>1.2表,字段的映射
<resultMap type="com.xxx.xxx.mapper.MyEntity" id="MyEntityResult"> <id property="id" column="me_id" javaType="java.lang.Integer"/> <result property="title" column="me_title" javaType="java.lang.String"/> </resultMap>property 对应对象的属性名,column为列名或者列的别名,javaType或者jdbcType都可以对应,对于基本数据类型,比如MyEntity的Integer id是主键,要用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都给提供了参数
<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的属性
循环:
<delete id="deleteBatch" parameterType="java.util.List"> delete from MyEntity where id in( <foreach collection="list" item = "item" separator=","> #{item} </foreach> ) </delete>
<where>
<where> <if test="title!=null and ! " ".equals(title.trim())"></if> </where>
<set> 只用于update语句中
<set> <if test="title!=null and ! " ".equals(title.trim())">title=${title},</if> </set>
ongl的引用
<trim> 可以替代where或者set
如
<trim prefix="where" prefixOverrides="and/or"> <!-- ...........与where效果一样 截取前缀的and或者or --> </trim> <trim prefix="set" suffixOverrides=","> <!-- ...........与set效果一样 截取前缀的逗号 --> </trim>
<choose> 当if判断极其复杂的时候 代替if else if语句
<sql>
<include>
4 多对一,一对多
相关文章推荐
- mybatis与spring3.1整合(org.mybatis.spring.mapper.MapperFactoryBean)
- SpringBoot 入门教程:集成mybatis,redis
- memcached缓存与mybatis的整合
- Spring+SpringMVC+Mybatis+Maven搭建的框架
- SpringMVC + Spring + MyBatis 学习笔记:提交数据遭遇日期格式转化报400错误解决方法
- MyBatis <if>标签的一些问题
- MyBatis动态语句及利用Map类来传递参数
- mybatis高级映射总结
- mybatis xml使用不存在的类
- MyBatis缓存介绍
- mybatis入门-框架原理
- mybatis-全局配置文件-mybatis-config.xml-mappers-10
- MyBatis整合Spring理论
- Mybatis - 高级映射 (复习,数据表分析,一对一 之 resultType )
- MyBatis入门第3天--高级映射与查询缓存
- springboot---->集成mybatis开发(一)
- springboot+mybatis
- mybatis+spring
- Mybatis调用Oracle中的存储过程和function
- mybatis 乐观锁实现,解决并发问题。