事务的隔离级别
RowBounds, 所以在这方面,不同的驱动能够取得不同级别的高效率。为了取得最佳的表现,请使用结果集的 SCROLL_SENSITIVE 或 SCROLL_INSENSITIVE 的类型(换句话说:不用 FORWARD_ONLY)。
很多时候你不用调用 rollback(),因为 MyBatis 会在你没有调用 commit 时替你完成回滚操作。然而,如果你需要在支持多提交和回滚的 session 中获得更多细粒度控制,你可以使用回滚操作来达到目的。
默认情况下,只启用了本地的会话缓存,它仅仅对一个会话中的数据进行缓存。
每当一个新 session 被创建,MyBatis 就会创建一个与之相关联的本地缓存。任何在 session 执行过的查询语句本身都会被保存在本地缓存中,那么,相同的查询语句和相同的参数所产生的更改就不会二度影响数据库了。本地缓存会被增删改、提交事务、关闭事务以及关闭 session 所清空。
- 是否意味着,同一个session的相同多次查询,总是会从本地缓存中读取数据?如果有人直接修改了数据库,session感知不到?
- 无论是本地的会话缓存,还是全局二级缓存,是否都存在上述情况?
<association>
相似,而 many 属性是对集合而言的,和<collection>
resultType |
从这条语句中返回的期望类型的类的完全限定名或别名。 ==注意如果返回的是集合,那应该设置为集合包含的类型,而不是集合本身==。可以使用 resultType 或 resultMap,但不能同时使用。 |
@Param 参数 N/A 如果你的映射方法的形参有多个,这个注解使用在映射方法的参数上就能为它们取自定义名字。若不给出自定义名字,多参数(不包括 RowBounds 参数)则先以 “param” 作前缀,再加上它们的参数位置作为参数别名。例如 #{param1}, #{param2},这个是默认值。如果注解是 @Param(“person”),那么参数就会被命名为 #{person}。
需要试验一下,映射方法有多个参数
如何通过 Java 代码添加 Sql 映射文件
- 通过 configuration 对象添加了一个映射器类。映射器类是 Java 类,它们包含 SQL 映射语句的注解从而避免依赖 XML 文件。如果没有包含注解,并且存在一个同名的 XML 映射文件, Mybatis 会自动查找并加载它,BlogMapper.class 对应会加载 BlogMapper.xml
1 | configuration.addMapper(BlogMapper.class); |
- 也可以根据 mybatis 内部 configuration 对象如何解析对应的 Sql 映射文件来自己实现添加对应的 sql 映射文件,而不必通过配置文件的 mapper 标签来添加。