一般命名为mybatis-config.xml,大多数情况放在src目录下
配置文件的主要作用是获取SqlSession对象
该配置文件的根元素为<configuration></configuration>以下提到的所有内容都要写在该元素下
一、environments用来配置数据库的工作环境的元素
mybatis可以配置多种不同的工作环境以便*的切换
1.transactionManager:
事务管理器:是在jdbc程序负责管理数据库连接的生命周期
type: 可选 MANAGED,JDBC
2.dataSource
数据源,包含连接数据库的各种信息
type:可选 UNPOOLED,POOLED,JNDI
如图:
![mybatis配置文件详解 mybatis配置文件详解](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzQ1Mi82NTQ4OTU4Y2NlMTYzN2I2NDEwYjk5ZWMwYzUyMGY3NC5wbmc%3D.png?w=700)
当然也可以通过变量的方式,变量是之前设置好的,之后会提到
如图:
![mybatis配置文件详解 mybatis配置文件详解](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzc5LzU3N2QyYzlkN2M5ZjBkMDZjMWNhZmJkYTE1ZmY0ZWJmLnBuZw%3D%3D.png?w=700)
这里笔者比较推荐使用变量的方式,因为这样可以更加的灵活,对于以后的修改工作也可以简单方便
二、properties
用来定义配置文件中可以使用的变量名和变量值(可以通过name和value值一一对应)
如图:
![mybatis配置文件详解 mybatis配置文件详解](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzk5MC9lZjg1ZWI2ZWIyOTY1ZWU4MmU0OGUxMjA1YTc4YzM1ZS5wbmc%3D.png?w=700)
另外我们可以调用外部的文件来实现变量的定义(如果数据特别多时,笔者建议使用这种方式,因为后期维护修改较容易找到)
如图:
![mybatis配置文件详解 mybatis配置文件详解](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzEzMy8xMjk0YjJkNDg2OGNmMzhlMDZlNzRiMDJlM2RhZGE2NS5wbmc%3D.png?w=700)
外部引用的文件是db.properties一个键值成对的文件格式,内容如下:
![mybatis配置文件详解 mybatis配置文件详解](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzkyOS9lMDY5YWQ1MjdjYWY1YjBjN2JhMzlmOGZjYWJlNTUyMS5wbmc%3D.png?w=700)
如果外部引用的文件和当前定义的文件的变量名(name)相同时,外部文件的优先级高于当前配置文件
三、typeAliases
定义别名的元素,之后<Mappers>中需要完整的权限类名,为了简化代码,减少代码量,我们使用该元素为所有用到的类起一个别名
这样之后<Mappers>直接用别名也会被mybatis识别
笔者这里以Student类为例
如图:
![mybatis配置文件详解 mybatis配置文件详解](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzI5Ny8wYmQzOGYyYmUyM2E3MjI0OGU5MmM3MTU0MWExODQ4MS5wbmc%3D.png?w=700)
注:如果使用注解,注解的优先级是最高的,会覆盖掉之前设置的所有别名,但是使用注解时,必须通过<packege>
四、typeHandlers
如果插入数据库对象的类(这里指Student类)的属性有引入类型的数据,则需要该元素定义,从而使mybatis识别
笔者这里给Student类加入一个Phone的引入类型的类,以笔者
1.首先创建一个PhoneTypeHandler类继承BaseTypeHandler方法:
public class PhoneTypeHandler extends BaseTypeHandler<PhoneNumber>{}
然后重写父类中的方法
2.使用<typeHandlers>标签:
如图:
![mybatis配置文件详解 mybatis配置文件详解](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzY5MS8zZDU3OGFjYjIzMGE4M2EyZDNmNWVkMzA4YzA5ODc4Yi5wbmc%3D.png?w=700)
五、settings
全局参数设置,笔者这里用了设置一个日志文件
如图:
![mybatis配置文件详解 mybatis配置文件详解](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzkxLzE3ZjI1ZjRlODJiMWQ0MzA2NjAyODdiZTk0M2FkNGRiLnBuZw%3D%3D.png?w=700)
六、mappers
这里的元素是配置mapper文件的位置,以便加载时能找到mapper的正确位置
如图:
![mybatis配置文件详解 mybatis配置文件详解](https://image.shishitao.com:8440/aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzYzOS9mNDY0OTFkOWY3MjAxODRiN2M1NjdkMzU3YjA5YzBiNy5wbmc%3D.png?w=700)
另外:使用Java API也可以配置MyBatis,但是灵活性不如xml文件,所以一般不用。笔者这里做太多了解