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
· 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安装使用