Mybatis核心对象
1. SqlSessionFactory
这个主要用于建立SqlSession,也就是数据库连接。
对于SqlSessionFactory的访问是多线程安全的,所以一般只用于生产SqlSession,采用单例模式就可以。
2. SqlSession
这个用于数据库操作,是单线程的。每一个线程应该自己拥有SqlSession,并且不可以被共享,线程不安全,要及时的关闭,最好是一次请求,或者一个方法中使用。
其常用方法如下:
由于SqlSessionFactory是线程安全的,我们常常这么设计:
Mybais配置文件
1. Properties
用于分离一些配置到外部的文件中,例如,我们在外面的db.properties文件中配置数据库连接信息:
这个时候想把这些配置包含到mybatis核心配置文件中来用,怎么办?使用properties:
这样,我们在配置数据源的时候就可以使用了:
2. settings
常常用于配置二级缓存,延迟加载等等。
只是少数需要了解
3. typeAliases
别名,通常我习惯用全量名称。就是给全量名称一个简称。
也可以在其他地方进行配置,导入到本配置文件:
4. typeHandler
通常情况下不需要配置,对于某些类型转换,需要使用。
系统给的类型转换器:
当需要手动转换的时候,需要通过实现TypeHandler接口或者继承BaseTypeHandler类进行实现。并且需要注册:
注册一个类型处理器:
或者包扫描:
5. objectFactory
不经常使用。
自定义objectFactory需要实现ObjectFactory接口或者继承DefaultObjectFactory类:
在配置文件中注册:
6. plugins
Mybatis循序已经映射的语句执行过程中进行拦截调用,需要使用插件来实现。
7. environments
主要对数据源进行配置。
default配置的是默认数据源。
transactionManager配置的是事务管理相关,datasource配置数据源
POOLED数据库连接池属于一种较为流行的配置方法。其他配置信息如下:
JNDI在EJB或者应用服务器使用。
8. mappers
主要用于引入外部mapper文件