MyBatis入门 核心配置文件

 一个完整的配置实例:

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
  <configuration>
      <!-- 1.properties属性引入外部配置文件 -->
      <properties resource="com/mybatis/example/config.properties">
          <!-- property里面的属性全局均可使用 -->
          <property name="username" value="root"/>
          <property name="pasword" value="123"/>
      </properties>
      <!--2. 全局配置参数 -->
      <settings>
          <!-- 设置是否启动缓存 -->
          <setting name="cacheEnabled" value="true"/>
          <!-- 设置是否启用懒加载 -->
          <setting name="lazyLoadingEnabled" value="true"/>
      </settings>
      <!-- 3.别名设置 /ˈeɪliəs/-->
      <typeAliases>
          <typeAlias type="com.mybatis.domain.User" alias="user"/>
          <typeAlias type="com.mybatis.domain.Customer" alias="customer"/>
      </typeAliases>
      <!-- 4.类型转换器 -->
      <typeHandlers>
          <!-- 一个简单类型转换器 -->
          <typeHandler handler="com.mybatis.example.ExampleTypeHandler"/>
      </typeHandlers>
      <!-- 5.对象工厂 -->
      <objectFactory type="com.mybatis.example.ExampleObjectFactory">
          <!-- 对象工厂注入的参数 -->
          <property name="someProperty" value="100"/>
      </objectFactory>
      <!-- 6.插件 -->
      <plugins>
          <plugin interceptor="com.mybatis.example.ExamplePlugin"> <!--/ˌɪntəˈseptə(r)/ 拦截者 -->
              <property name="someProperty" value="100"/>
          </plugin>
      </plugins>
      <!-- 7.environments数据库环境配置 -->
      <!-- 和Spring整合后environments配置将配废除 -->
      <environments default="development">
          <environment id="development">
              <!-- 使用JDBC事务管理 -->
              <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>
      
      <!-- 8.加载映射文件 -->
      <mappers>
          <mapper resource="com/mybatis/mapper/UserMapper.xml" />
          <mapper resource="com/mybatis/mapper/CustomerMapper.xml" />
      </mappers>
  </configuration>
复制代码

 


各个配置参数的详解:

properties参数

用来引入一个外部属性文件:
引入一个 config.properties 文件

<!-- 1.properties属性引入外部配置文件 -->
<properties resource="com/mybatis/example/config.properties">
    <!-- property里面的属性全局均可使用 -->
    <property name="username" value="root"/>
    <property name="pasword" value="123"/>
</properties>

config.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql:///ssm
username=root
password=123


properties标签:引入它避免了数据库信息的“硬编码”,当需要连接其他数据库的时候,只需要更改数据库的配置文件即可。
当 properties 中有 property子标签时,并且子标签配置了引入的属性文件的属性值,这时取的就是 property 子标签中的value值。
在 properties 中引入的配置文件信息以及property子标签中的配置的信息,在其他标签中可以使用 "${ }"占 位 符 的 方 式 来 获 取 , 在"{ }"中填写引入的配置文件中参数的name或者property子标签的name。
例如:

<dataSource type="POOLED">
    <property name="driver" value="${driver}"/>
    <property name="url" value="${url}"/>
    <property name="username" value="${username}"/>
    <property name="password" value="${password}"/>
</dataSource>

 

setting配置

影响Mybatis框架在运行时的一些行为,在这就不详细介绍了,只需大致了解setting中包含了哪些设置,然后在需要用的时候,查看setting的文档即可。
setting配置常用来实现缓存、延迟加载和分页设置。
详细参考:MyBatis中settings属性配置详解

 

typeAliases配置

在MyBatis的SQL映射配置文件中,常使用parameterType、resultType之类的参数设置SQL语句的输入/输出参数,一般参数都是一个java类型的数据,有基本数据类型或引用数据类型,单数一般都要声明该类型的全路径名称,例如“java.lang.String”、“com.mybatis.domain.User”。
而通过在typeAliases配置中声明该类的全路径名称,然后给它一个别名,在SQL映射配置文件中指定输入/输出参数类型时使用别名。

<typeAliases>
    <typeAlias type="com.mybatis.domain.User" alias="user"/>
    <typeAlias type="com.mybatis.domain.Customer" alias="customer"/>
</typeAliases>


MyBatis还提供了批量定义别名的方法,指定包名即可,程序会为该包下的所有包装类加上别名。定义别名的规范就是对应包装类的类名首字母变成小写。

<typeAliases>
    <package name="com.mybatis.domain" />
</typeAliases>


还可以通过注解的方式来实现
@Alias("user")
public class User {
}
 

Mybatis已经为Java的常见类型默认指定了别名,可以直接使用。
别名    映射的类型
_byte    byte
_long    long
_short    short
_int    int
_integer    int
_double    double
_float    float
_boolean    boolean
string    java.lang.String
byte    java.lang.Byte
long    java.lang.Long
short    java.lang.Short
int    java.lang.Integer
integer    java.lang.Integer
double    java.lang.Double
boolean    java.lang.Boolean
date    java.util.Date
decimal    java.math.BigDecimal
bigdecimal    java.math.BigDecimal
object    java.lang.Object
map    java.util.Map
hashmap    java.util.HashMap
list    java.util.List
arraylist    java.util.ArrayList
collection    java.util.Collection
iterator    java.util.Iterator

可以从上面发现规律: 基本数据类型的别名是“_”加上基本数据类型的名称,引用数据类型的别名是数据类型的名称首字母小写。
建议:在实体类中定义属性时尽量使用引用数据类型。
在返回值是个List集合的时候,ResultType中还是写返回的list集合中对象的别名。

environments配置环境

 

复制代码
<!-- 7.environments数据库环境配置 -->
<!-- 和Spring整合后environments配置将配废除 -->
<environments default="development">
<environment id="development">
    <!-- 使用JDBC事务管理 -->
    <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>
复制代码


environments中的default属性配置默认的环境,而environment中的id则是这个环境的id。
数据管理器(transactionManager)有两种类型:分别是JDBC和MANAGED。配置为JDBC,相当于直接使用JDBC的提交和回滚设置。配置为MANAGED,则不提交和回滚连接,而是有容器来管理事务的生命周期。
关于数据源(dataSource),在mybatis中有三种内建的数据源类型:分别是“UNPOOLED”、“POOLED”,与“JNDI”。其中UNPLOOED设置每次请求时打开和关闭连接,而POOLED可以设置一个管理数据库连接的资源池,用来合理控制数据库的连接与关闭次数,利用“池”的概念将JDBC连接对象组织起来。而JNDI则配置连接外部数据源的信息。

mappers配置分析

mappers标签下有多个mapper标签,每一个mapper标签中配置的都是一个独立的Mapper映射配置文件的路径。有以下几种配置方式:
第一种,使用相对路径进行配置:

<mappers>
    <mapper resource="com/mybatis/mappers/UserMapper.xml" />
</mappers>


第二种,使用绝对路径进行配置:

<mappers>
    <mapper url="file:///var/mappers/UserMapper.xml" />
</mappers>


第三种,使用接口信息进行配置:

<mappers>
    <mapper class="com.mybatis.mappers.UserMapper" />
</mappers>


第四种,使用接口所在包进行配置:

<mappers>
    <mapper class="com.mybatis.mappers" />
</mappers>

 

 

REF

https://www.cnblogs.com/emanlee/p/15720952.html

https://blog.csdn.net/qq_37745636/article/details/100676242

https://www.jianshu.com/p/b39b1520c903

https://baijiahao.baidu.com/s?id=1721665960375377102&wfr=spider&for=pc

posted @   emanlee  阅读(97)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库
· 分享4款.NET开源、免费、实用的商城系统
历史上的今天:
2021-02-07 Support Vector Regression(SVR) 资料
2015-02-07 mysql删除重复记录
2015-02-07 python去掉行尾的换行符
2011-02-07 理解商集
2010-02-07 安装 IE8 Internet Explorer 8.0
2010-02-07 关于Microsoft Virtual PC 2007安装使用
点击右上角即可分享
微信分享提示