mybatis-config.xml系统核心配置文件
configuration(配置)
properties(属性)
settings(设置)
typeAliases(类型别名)
objectFactory(对象工厂)
plugins(插件)
environments(环境配置)
environment(环境变量)
transactionManager(事务管理器)
datasource(数据源)
databaseIdProvider(数据库厂商表示)
mappers(映射器)
元素节点的顺序不对会报错,有的节点可以不写。
environments元素
配置Mybatis的多套运行环境,将SQL映射到多个不同的数据库上,必须制定其中一个为默认运行环境,通过default指定。
子元素节点environment
dataSource元素使用标准的JDBC数据源接口来配置JDBC连接对象的资源。
数据源是必须配置的
有三种内建的数据源类型
type="[UNPOOLED|POOLED|JNDI]"
unpooled:这个数据源的实现只是每次被请求时打开和关闭连接。
pooled:这种数据源的实现利用“池”的概念将JDBC连接对象组织起来,这是一种使得并发web应用快速响应请求的流行处理方式。
jndi:这个数据源的实现是为了能在如Spring或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个JNDI上下文的引用。
数据源也有很多第三方的实现,比如c3p0,dbcp,druid等等...
子元素节点:transactionManager事务管理器
子元素节点:dataSource数据源
mappers
映射器:定义映射SQL语句文件
引入资源方式
使用相对于类路径的资源引用
使用完全限定资源定位符
使用映射器接口实现类的完全限定类名,需要配置文件名称和接口名称一致,并且位于同一目录下
将包内的映射器接口实现全部注册为映射器,但是需要配置文件名称和接口名称一致,并且位于同一目录下。
Mapper文件
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
namespace:命名空间
namespace的命名必须跟某个接口同名
接口中的方法与映射文件中sql语句id应该一一对应
namespace和子元素的id联合保证唯一,区别不同的mapper
绑定DAO 接口
namespqce命名规则:包名+类名
Properties优化
数据库这些属性都是可外部配置且可动态替换的,既可以在典型的Java属性文件中配置,也可以通过properties元素的子元素来传递。
第一步:在资源目录下新建一个db.properties
第二步:将文件导入properties配置文件
typeAliases优化
类型别名是为java类型设置一个短的名字。它只和xml配置有关,存在的意义仅在于用来减少类完全限定名的冗余。
这样配置时,User可以用在任何使用com.qiao.pojo.User的地方
也可以指定一个包名,Mybatis会在包名下面搜索需要的javaBean,
每一个在包com.qiao.pojo中的javabean,在没有注解的情况下,会使用Bean的首字母小写的非限定类名来作为它的别名。若有注解,则别名为其注解值。
@Alias("user")
public class User {
...
}
设置
设置相关(settings)
懒加载
日志实现
缓存开启关闭
类型处理器
无论是MyBatis在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时,都会用类型处理器将获取的值以合适的方式转换成java类型。
对象工厂
MyBatis每次创建结果对象的新实例时,它都会使用一个对象工厂实例来完成。
默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认构造方法,要么在参数映射存在的时候通过有参构造方法来实例化。