MyBatis 3
- SqlSessionFactoryBuilder
- SqlSessionFactory
- 运行期间一直存在。
- 不建议多次创建,最好使用单例。
- SqlSession
- 每个线程都应该有自己的 SqlSession 实例。
- 不是线程安全的,因此不允许共享。
- mapper 映射器实例
- 通过 SqlSession 获得。
- 不需要关闭,用完即丢。
- TransactionManager
- DataSource
- namespace
- 利用更长的全限定名来将不同的语句隔离开来
- 接口绑定
- 命名解析:MyBatis 对所有具有名称的配置元素(包括语句,结果映射,缓存等)使用了如下的命名解析规则
- 全限定名(比如 “com.mypackage.MyMapper.selectAllThings)将被直接用于查找及使用。
- 短名称(比如 “selectAllThings”)如果全局唯一也可以作为一个单独的引用。 如果不唯一,有两个或两个以上的相同名称(比如
“com.foo.selectAllThings” 和 “com.bar.
selectAllThings”),那么使用时就会产生“短名称不唯一”的错误,这种情况下就必须使用全限定名。
- 作用域(scope)和生命周期
- 依赖注入框架可以创建线程安全的、基于事务的 SqlSession 和映射器,并将它们直接注入到你的 bean
中,因此可以直接忽略它们的生命周期。
XML 配置