MyBatis基础配置

MyBatis基础配置


最近学习MyBatis的框架,感觉MyBatis的官方教程对细节讲的很详细,但是有的地方不是很清楚,自己摸索了一下午的时间,才把配置做好。

主要配置文件的结构

  • configuration配置
    • properties属性
    • settings设置
    • typeAliases类型别名
    • typeHandlers类型处理器
    • objectFactory对象工厂
    • plugins插件
    • environments环境
    • environment环境变量
      • transactionManager事务管理器
      • dataSource数据源
    • databaseIdProvider 数据库厂商标识
    • mappers 映射器

其中configuration是根元素,environments和mappers两个子元素必选,其他子元素可选。

文章只对propertiestypeAliasesenvironmentsmappers这几个子元素做讲解。

如果对其他子元素的配置感兴趣,请移步官方文档


项目结构

因为配置文件以及代码中读取资源文件都会涉及到文件的路径,项目结构如下图所示:

这里写图片描述

我的MyBatis配置文件的命名是mybatis-config.xml,后面都沿用这个命名,也可以用其他命名,只需后面读取配置文件的时候更改成自己的文件命名就行。


properties属性

properties的作用就是配置属性以供之后的environments使用,properties有两种配置方式:

1.第一种方式是在典型的 Java 属性文件中配置,即外部配置

     <properties resource="application.properties"/>

application.properties文件如下:

       #MyBatis-config.xml
       driver=com.mysql.cj.jdbc.Driver
       url=jdbc:mysql://localhost:3306/数据库名称
       username=连接数据库的用户名称
       password=连接数据库的用户密码

2.直接通过properties子元素property来传递

    <properties>
        <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/数据库名称"/>
        <property name="username" value="连接数据库的用户名称"/>
        <property name="password" value="连接数据库的用户密码"/>
    </properties>

3.两者结合使用

    <properties resource="application.properties">
        <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/数据库名称"/>
    </properties>

总结:推荐使用第一种通过Java属性文件配置的方式,比较灵活,且当连接变化的时候,只需要修改application.properties文件。


typeAliases类型别名

类型别名是为 Java 类型设置一个短的名字。它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余。

typeAliases也有两种配置方式:

1.一个类的完全限定名对应一个类型别名

官方教程示例

    <typeAliases>
         <typeAlias alias="Author" type="domain.blog.Author"/>
         <typeAlias alias="Blog" type="domain.blog.Blog"/>
         <typeAlias alias="Comment" type="domain.blog.Comment"/>
         <typeAlias alias="Post" type="domain.blog.Post"/>
         <typeAlias alias="Section" type="domain.blog.Section"/>
         <typeAlias alias="Tag" type="domain.blog.Tag"/>
    </typeAliases>

则在之后XML的映射配置文件中,若有任何用到domain.blog.Blog的地方,都可以直接使用Blog代替

2.在typeAliases中指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean

官方教程示例

    <typeAliases>
         <package name="domain.blog"/>
    </typeAliases>

每一个在包 domain.blog 中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。 比如 domain.blog.Author 的别名为 author;若有注解,则别名为其注解值。看下面的例子:

    @Alias("author")
       public class Author {
           ...
       }

domain.blog.Author的别名为author

总结:选择两种方式均可。另外MyBatis已经为常见的Java类型内建了相应的类型别名。详情查看官方文档


environments

XML文件配置实例

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>

关键点:

  • 默认的环境 ID(比如:default=”development”)。
  • 每个 environment 元素定义的环境 ID(比如:id=”development”)。
  • 事务管理器的配置(比如:type=”JDBC”)。
  • 数据源的配置(比如:type=”POOLED”)。

默认的环境和环境 ID 是一目了然的。随你怎么命名,只要保证默认环境要匹配其中一个环境ID。

对transactionManager的配置不作介绍,如果你使用的JDBC,直接type=”JDBC”就是了。。。

dataSource的type介绍也请自行查看官方教程

如果你没有特殊需求的话,dataSource中只需简单地配置四个属性:driver, url, username, password

使用${propertes中配置的属性名(name)}来引用之前在properties中配置的属性


mappers映射器

mappers映射器的配置请看我的另外一篇教程,映射器接口,Mapper XML文件及mappers的配置

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值