MyBatis学习笔记(二)根据配置文件优化
上一篇:MyBatis学习笔记(一)完整查询数据库流程+增删改查
mybatis_config.xml文件中可以包含以下部分
本文接下来的优化都是针对于mybatis_config.xml文件,并且每个标签都必须按照上图顺序
一、属性:相当于全局变量
1. 在properties文件中配置的变量通过properties标签引用后可以直接读取
db.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8
username=root
password=123456
mybatis_config.xml
<properties resource="db.properties"/><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>
2. 其中一部分变量写在标签内也可以直接读取
3. 如果一个属性在不只一个地方进行了配置,那么,MyBatis 将按照下面的顺序来加载:
- 首先读取在 properties 元素体内指定的属性。
- 然后根据 properties 元素中的 resource 属性读取类路径下属性文件,或根据 url 属性指定的路径读取属性文件,并覆盖之前读取过的同名属性。
- 最后读取作为方法参数传递的属性,并覆盖之前读取过的同名属性。
因此,通过方法参数传递的属性具有最高优先级,resource/url 属性中指定的配置文件次之,最低优先级的则是 properties 元素中指定的属性。
二、设置之日志工厂
日志工厂可以详细的输出数据库操作的过程和错误
1. STDOUT_LOGGING
2. LOG4J
(1)导包
依旧是通过maven仓库
(2)新建配置文件
(3)在mybatis_config.xml中配置
(4)在UserDaoTest.java中添加:
(5)函数中的几句可以放在该类的任意一个函数中使用
static Logger logger = Logger.getLogger(UserDaoTest.class);@Test
public void testLog4j(){logger.info("info:进入了方法");logger.debug("debug:进入了方法");logger.error("error:进入了方法");
}
三、类型别名
1. 为类起一个别名,使 UserMapper.xml 中resultType为类时,不用写长长的文件夹前缀
mybatis_config.xml
<typeAliases><typeAlias type="pojo.User" alias="User"/>
</typeAliases>
UserMapper.xml
<select id="getUserList" resultType="User">select * from mybatis.user
</select>
2. 也可以指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean
(1)在没有注解的情况下包里的所有类会自动拥有别名:首字母小写的类名来作为它的别名
mybatis_config.xml
<typeAliases><package name="pojo"/>
</typeAliases>
UserMapper.xml
<select id="getUserList" resultType="user">select * from mybatis.user
</select>
(2)在有注解的情况下,注解就是别名
3. 系统自带类本身就拥有别名
四、环境配置
尽管可以配置多个环境,但每个 SqlSessionFactory 实例只能选择一种环境。
每个数据库对应一个 SqlSessionFactory 实例
1. 环境变量
- 默认使用的环境 ID(比如:default="development")。
- 每个 environment 元素定义的环境 ID(比如:id="development")。
- 事务管理器的配置(比如:type="JDBC")。
- 数据源的配置(比如:type="POOLED")。
2. 事务管理器
在 MyBatis 中有两种类型的事务管理器(也就是 type="[JDBC|MANAGED]"):
如果你正在使用 Spring + MyBatis,则没有必要配置事务管理器,因为 Spring 模块会使用自带的管理器来覆盖前面的配置。
3. 数据源
有三种内建的数据源类型(也就是 type="[UNPOOLED|POOLED|JNDI]"):
池是可以重复使用的
五、mapper映射器
1. 使用接口实现xml文件注册
<mappers><mapper resource="UserMapper.xml"/></mappers>
2. 采用类接口注册
如果不通过xml文件注册,而采用类接口注册,那么接口实现的xml文件必须和类在同一个文件夹下,并且类的名字和xml必须是同名
用包名的方式注册,两文件也要同名且在同一包下,并且类的名字和xml必须是同名
下一篇:MyBatis学习笔记(三)生命周期_分页_使用注解增删改查_mybatis执行流程
MyBatis学习笔记(二)根据配置文件优化相关推荐
- [MyBatis学习笔记] 二、Mybatis基本操作及相关标签介绍
[MyBatis学习笔记] 二.Mybatis基本操作及相关标签介绍 一.Mybatis简介 二.简单的CRUD操作 1.构建SqlSessionFactory (1)编辑mybatis-config ...
- mybatis学习笔记二(接口注解)
直接上代码,全部在代码里讲解. 1.实体类 package com.home.entity;/*** 此类是:user实体类* @author hpc* @2017年1月10日下午9:36:59*/ ...
- Mybatis学习笔记(二)【框架基础搭建】
Mybatis框架基础搭建 一.数据库搭建 二.创建一个maven工程 三.在pom.xml中导入依赖 四.创建一个mybatis的核心配置文件 配置连接数据库的字段值文件(如果使用方式一就不需要配置 ...
- 深度学习笔记(10) 优化算法(二)
深度学习笔记(10) 优化算法(二) 1. Adam 优化算法 2. 学习率衰减 3. 局部最优的问题 1. Adam 优化算法 Adam代表的是 Adaptive Moment Estimation ...
- Mybatis学习笔记(二) 之实现数据库的增删改查
开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包.这些软件工具均可以到各自的官方网站上下载 ...
- Spring Boot 框架学习笔记(二)(配置文件与数据注入 yaml基本语法 JSR303数据验证 多环境切换 )
Spring Boot 框架学习笔记(二) 六.appliaction.properties配置与数据注入 6.1 `@Value`注解 测试注入数据 读取输入流 6.2 读取配置文件数据注入 单文件 ...
- 超详细Mybatis学习笔记(可供下载)
文章目录 1.简介 2.第一个Mybatis程序 搭建环境 编写代码 测试 3.CRUD(增删改查) 3.1.几个属性 3.2.select 3.3.insert 3.4.delete 3.5.upd ...
- Mybatis学习笔记——第一天
Mybatis学习打卡 Mybatis学习笔记---第一天 Mybatis笔记 第一天 一.引言 1. 现有Jdbc的缺陷 2. Mybatis框架 3. 搭建环境 1) 引入jar包 2) 引入配置 ...
- Mybatis学习总结二
Mybatis学习总结二 0.不需要修改的文件(在src下面) jdbc.properties文件 log4j.properties文件 SqlMapConfig.xml文件 1.高级结果映射 1.1 ...
最新文章
- 堆排序——HeapSort
- 假如易立竞吐槽程序员......
- LAMP搭建UCenter
- matlab 生成不重复的随机整数 打乱数据排列 生成深度学习数据集
- Servlet3.1 新增的非阻塞式IO
- python请输入第一个数请输入第二个数_Python小白学习之路(四)——第一次练习题...
- 【Python】如何用Python来操作PDF文件,建议收藏
- 区域锁(Scoped locking)
- java 证书公钥 私钥_ssl - 在Java Key中导入私钥/公钥证书对
- 【Kafka】Kafka安装部署
- PRD之道:4个撰写PRD的关键思路
- mpls 保留标签值_MPLS的前世今生11
- hownet与wordnet的区别
- 向量与直线,梯度与法向量,切向量
- 360腾讯计算机比赛,巅峰对决 腾讯电脑管家VS360详尽评测
- word2vec模型。该模型是用于学习文字的向量表示,称之为“word embedding”
- java 月的天数_Java获取某月天数
- Visual Studio 番茄助手 安装问题
- 先少谈点人工智能好吗?
- SpringCloud——Eureka服务注册和发现