mybatis_配置文件详解

Posted doaoao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis_配置文件详解相关的知识,希望对你有一定的参考价值。

MyBatis配置文件

mybatis配置文件的主要作用

1:注册数据库配置文件 db.properties,方便使用

2:注册实体类 JavaBean 的全限定性类名的别名

3:配置MyBatis运行环境,即配置数据源和事务管理器

4:注册映射文件的 mappeer

## 配置文件详解

# 1 注册 db.properties属性文件

该配置的作用就是注册数据库配置文件,这样就可从数据库配置文件中获取配置信息

<!-- 注册配置文件 -->
<properties resource="db.properties"></properties>

# 2 注册实体类 JavaBean 的全限定性类名的别名

在编写Mapper配置文件时需要写上一些JavaBean类的全限定名称,造成比较繁琐,所以可以使用 typeAliases标签设置该javabean类的别名;例如下方的配置,当该类在mapper中使用时,就可直接使用所配置的别名(student)

<!-- 将类 com.doaoao.bean.Student 的别名设置为 student-->
<typeAliases>
    <typeAlias type="com.doaoao.bean.Student" alias="student"/>
</typeAliases>

当有多个JavaBean时,按照上方的方法我们就得配置多个typeAlias,这时我们可以使用package指定一个包名,mybatis会在该包下搜索需要的JavaBean,当指定一个包名时,会将该包下的类的首字母变成小写作为该类的别名。例如 com.doaoao.bean.Student,该类的默认别名就是 student,下方为使用方法

<typeAliases>
    <package name="com.doaoao.bean"/>
</typeAliases>

也可以不适用系统自己定义的别名,那就使用注解 @Alias自定义一个别名

@Alias("xuesheng")
public class Student {

    private int id;

    private String name;

    private int age;

    private double score;
}

 # 注:mybatis为一些常见的类建立了别名

别名     映射的类型
_byte     byte
_long     long
_short    short
_int      int
_integer    int
_double   double
_float    float
_boolean    boolean
string    String
byte      Byte
long      Long
short     Short
int     Integer
integer   Integer
double    Double
float     Float
boolean   Boolean
date      Date
decimal   BigDecimal
bigdecimal  BigDecimal
object    Object
map     Map
hashmap   HashMap
list      List
arraylist   ArrayList
collection  Collection
iterator    Iterator

 # 3 配置MyBatis的运行环境

通常在较大规模的项目中,项目在开发时会使用多个数据库,在开发阶段可能选择本地数据库,在测试时选择另一个数据库,在上线时选择另一个数据库,所以可以利用mybatis中的配置选择哪个数据库

<environments default="development">        
    <!-- 使用本地数据库 -->
    <environment id="development">
        <transactionManager type="JDBC"/>
        <dataSource type="POOLED">
            <property name="driver" value="${jdbc.driver}"/>
            <property name="url" value="${jdbc.url}"/>
            <property name="username" value="${jdbc.user}"/>
            <property name="password" value="${jdbc.password}"/>
        </dataSource>
    </environment>
    <!-- 其它数据库 -->
  <environment id="online">
        <transactionManager type="JDBC"/>
        <dataSource type="POOLED">
            <property name="driver" value="${jdbc.online.driver}"/>
            <property name="url" value="${jdbc.online.url}"/>
            <property name="username" value="${jdbc.online.user}"/>
            <property name="password" value="${jdbc.online.password}"/>
        </dataSource>
    </environment>
</environments>

在 environments 标签中含有两个子标签,两个子标签 environment分别表示两个不同的数据库,可以在enbironments中的属性defaule来指定使用哪个数据库,这样在切换数据库环境时,只需要修改default属性即可

# transactionManager标签

该标签用来指定mybits使用的事务管理器,mybits支持两种事务管理器

1:JDBC,该事务通过Connection的commit()方法提交,通过rollback方法回滚

2:MANAGED,利用容器来管理事务的整个周期,默认情况下会关闭连接

# dataSource标签

该标签用来配置数据源,和数据库连接的基本属性,有以下三种数据源类型

1:UNPOOLED,该配置表示步使用连接池,每次请求时会创建一个数据库连接,使用完成后变比数据库连接

2:POOLED,表示使用mybits自带的数据库连接池

3:JNDI,配置外部的数据源

# 4 mapper映射器

该标签的作用就是告诉mybits.xml配置文件我们编写的mapper所在的路径,有以下四种写法

<!-- 第一种 -->
mappers>
    <!-- 使用相对于类路径的资源引用 -->
    <mapper resource="com/doaoao/dao/StudentMapper.xml"/>
</mappers>

<!-- 第二种 -->
<mappers>
    <!-- 使用完全限定资源定位符(URL) -->
    <mapper url="D:/xxxx/StudentMapper.xml"/>
</mappers>

<!-- 第三种 -->
<mappers>
    <!-- 使用映射器接口实现类的完全限定类名 -->
    <mapper class="com.doaoao.dao.StudentDao"/>
</mappers>
<!-- 注意点:
1:映射文件名要与 Dao 接口名称相同
2:映射文件要与接口在同一包中
3:映射文件中的 namespace 属性值为 Dao 接口的全类名 -->

<!-- 第四种 -->
<mappers>
    <!-- 将包内的映射器接口实现全部注册为映射器 -->
    <package name="com.doaoao.dao"/>
</mappers>
<!-- 注意点
dao 使用 mapper 动态代理实现(后面再将)
映射文件名要与 Dao 接口名称相同
映射文件要与接口在同一包中
映射文件中的 namespace 属性值为 Dao 接口的全类名 -->

 ...

...

以上是关于mybatis_配置文件详解的主要内容,如果未能解决你的问题,请参考以下文章

MYBATIS03_全局配置文件environmentspropertiesmappertypeAliassettings标签详解

mybatis-generator配置文件详解

mbg配置文件详解

mybatis代码生成器配置文件详解

Mybatis Generator最完整配置详解[mybatis代码自动生成配置]

MyBatis配置文件详解