Mybatis 全局配置文件 2021-9-20

Mybatis 应用

1 Mybatis 入门与编码流程
2 mapper代理开发方式
3 全局配置文件
4 输入映射和输出映射
5 关联查询
6 延迟加载
7 动态SQL
8 Mybatis缓存


一、 配置内容

SqlMapConfig.xml中配置的内容和顺序如下: 顺序是固定的

  • properties(属性)
  • settings(全局配置参数)
  • typeAliases(类型别名)
  • typeHandlers(类型处理器)–Java类型–JDBC类型—>数据库类型转换
  • objectFactory(对象工厂)
  • plugins(插件)–可以在Mybatis执行SQL语句的流程中,横叉一脚去实现一些功能增强,比如 PageHelper分页插件,就是第三方实现的一个插件 environments(环境集合属性对象)
  • environment(环境子属性对象)
  • transactionManager(事务管理)
  • dataSource(数据源)
  • mappers(映射器)

二、 properties标签

SqlMapConfig.xml可以引用java属性文件中的配置信息。
1、在classpath下定义db.properties文件,

db.driver=com.mysql.jdbc.Driver
db.url=jdbc:mysql://192.168.56.100:3306/ssm?characterEncoding=utf-8
db.username=root
db.password=root

2、在SqlMapConfig.xml文件中,引用db.properties中的属性,具体如下:

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

3、properties标签除了可以使用resource属性,引用properties文件中的属性。还可以在properties标签
内定义property子标签来定义属性和属性值,具体如下:

<properties> 
	<property name="driver" value="com.mysql.jdbc.Driver"/>
</properties>

注意: MyBatis 将按照下面的顺序来加载属性:(配置文件加载:后加载的覆盖前加载)

  • 读取properties 元素体内定义的属性。
  • 读取properties 元素中resource或 url 加载的属性,它会覆盖已读取的同名属性。

Mybatis 可以读取系统环境变量,增加前缀放置获取错误。db.username

三、 typeAlias标签

别名的作用:就是为了简化映射文件中parameterType和ResultType中的POJO类型名称编写。

3.1 默认支持别名

示例:
int -> Integer

3.2 自定义别名

在SqlMapConfig.xml中进行如下配置:

<typeAliases> 
	<!-- 单个别名定义 --> 
	<typeAlias alias="user" type="com.kkb.mybatis.po.User"/> 
	<!-- 批量别名定义,扫描整个包下的类,别名为类名(首字母大写或小写都可以) --> 
	<package name="com.kkb.mybatis.po"/> 
</typeAliases>

四、 mappers标签

  1. 使用相对于类路径的资源, 写的是xml 文件。
<mapper resource=""/>`
<mapper resource="sqlmap/User.xml" />
  1. 使用绝对路径加载资源(很少用)
<mapper url="">
<mapper url="file://d:/sqlmap/User.xml" />
  1. 使用mapper接口类路径,加载映射文件。(很少用)
<mapper class=""/>
<mapper class="com.kkb.mybatis.mapper.UserMapper"/>

注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中。

  1. 注册指定包下的所有mapper接口,来加载映射文件。
    写的是包名。
<package name=""/>
<package name="com/mybatis/mapper"/>

注意:此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中

4.1 mapper 标签 遇到的问题

1、 当Mapper 接口文件与Mapper XML文件放置在一起时, Idea 编译后文件缺少xml, 上述归结与maven编译过程中会忽略非resources目录下的非java文件。

  <build>
		<!--将mapper文件打包进去-->
		<resources>
			<resource>
                <!--指定根目录 到源文件夹 一般如下-->
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.properties</include>
					<include>**/*.xml</include>
				</includes>
				<filtering>false</filtering>
			</resource>
		</resources>
	</build>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值