mybatis配置文件详解

来源:互联网 发布:php密码破解 编辑:程序博客网 时间:2024/05/16 19:04
今天所讲的是mybtis的配置文件
一般命名为mybatis-config.xml,大多数情况放在src目录下

配置文件的主要作用是获取SqlSession对象

该配置文件的根元素为<configuration></configuration>以下提到的所有内容都要写在该元素下

一、environments
用来配置数据库的工作环境的元素
mybatis可以配置多种不同的工作环境以便自由的切换
1.transactionManager:
事务管理器:是在jdbc程序负责管理数据库连接的生命周期
type: 可选 MANAGED,JDBC
2.dataSource
数据源,包含连接数据库的各种信息
type:可选 UNPOOLED,POOLED,JNDI
如图:

当然也可以通过变量的方式,变量是之前设置好的,之后会提到
如图:

这里笔者比较推荐使用变量的方式,因为这样可以更加的灵活,对于以后的修改工作也可以简单方便
二、properties
用来定义配置文件中可以使用的变量名和变量值(可以通过name和value值一一对应)
如图:

另外我们可以调用外部的文件来实现变量的定义(如果数据特别多时,笔者建议使用这种方式,因为后期维护修改较容易找到)
如图:

外部引用的文件是db.properties一个键值成对的文件格式,内容如下:

如果外部引用的文件和当前定义的文件的变量名(name)相同时,外部文件的优先级高于当前配置文件


三、typeAliases
定义别名的元素,之后<Mappers>中需要完整的权限类名,为了简化代码,减少代码量,我们使用该元素为所有用到的类起一个别名
这样之后<Mappers>直接用别名也会被mybatis识别
笔者这里以Student类为例
如图:

注:如果使用注解,注解的优先级是最高的,会覆盖掉之前设置的所有别名,但是使用注解时,必须通过<packege>
四、typeHandlers
如果插入数据库对象的类(这里指Student类)的属性有引入类型的数据,则需要该元素定义,从而使mybatis识别
笔者这里给Student类加入一个Phone的引入类型的类,以笔者
1.首先创建一个PhoneTypeHandler类继承BaseTypeHandler方法:
public class PhoneTypeHandler extends BaseTypeHandler<PhoneNumber>{}
然后重写父类中的方法
2.使用<typeHandlers>标签:
如图:

五、settings
全局参数设置,笔者这里用了设置一个日志文件
如图:


六、mappers
这里的元素是配置mapper文件的位置,以便加载时能找到mapper的正确位置
如图:

另外:使用Java API也可以配置MyBatis,但是灵活性不如xml文件,所以一般不用。笔者这里做太多了解