mybatis使用注解开发
基础的4个注解:@Select,@Insert,@Update,@Delete
配置pojo的属性名与mysql字段相对应的注解@Results
如:
@Results(id = "#", value = {
@Result(id = true, column = "user_id", property = "userId"),
@Result(column = "user_name", property = "userName"),
})
id = true表示的是该字段为主键。
还应该注意的有末尾是用逗号分隔。
而第二想使用上面的配置时,并不需要再写了@Results
只要用@ResultMap(value = “#”) 将上面@Results的id的值给拿下来就行了。
表关系是一对一时,@One的使用。
同样是配置在@Result里面的,如下代码:
@Result(property = "user",column = "id",
one=@One(select="com.dao.UserDao.findById",fetchType= FetchType.EAGER))
其中column是执行select时查询的字段。
select中是全限定类名+方法名(能查询user对象的方法)。
EAGER表示的是立即查询的意思,也就是select中的方法会随注解标记的方法一起运行。
表关系是一对多时,@Many的使用。
其实使用@Many与@One的参数完全相同,只不过@Many一般情况用的是LAZY。
也就是 fetchType= FetchType.LAZY 这表示的是延迟加载。
二级缓存的开启,@CacheNamespace
只要在接口上用上注解@CacheNamespace(blocking = true)
这样,二级缓存就开启了。