上一篇: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学习笔记(二)根据配置文件优化相关推荐

  1. [MyBatis学习笔记] 二、Mybatis基本操作及相关标签介绍

    [MyBatis学习笔记] 二.Mybatis基本操作及相关标签介绍 一.Mybatis简介 二.简单的CRUD操作 1.构建SqlSessionFactory (1)编辑mybatis-config ...

  2. mybatis学习笔记二(接口注解)

    直接上代码,全部在代码里讲解. 1.实体类 package com.home.entity;/*** 此类是:user实体类* @author hpc* @2017年1月10日下午9:36:59*/ ...

  3. Mybatis学习笔记(二)【框架基础搭建】

    Mybatis框架基础搭建 一.数据库搭建 二.创建一个maven工程 三.在pom.xml中导入依赖 四.创建一个mybatis的核心配置文件 配置连接数据库的字段值文件(如果使用方式一就不需要配置 ...

  4. 深度学习笔记(10) 优化算法(二)

    深度学习笔记(10) 优化算法(二) 1. Adam 优化算法 2. 学习率衰减 3. 局部最优的问题 1. Adam 优化算法 Adam代表的是 Adaptive Moment Estimation ...

  5. Mybatis学习笔记(二) 之实现数据库的增删改查

    开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包.这些软件工具均可以到各自的官方网站上下载 ...

  6. Spring Boot 框架学习笔记(二)(配置文件与数据注入 yaml基本语法 JSR303数据验证 多环境切换 )

    Spring Boot 框架学习笔记(二) 六.appliaction.properties配置与数据注入 6.1 `@Value`注解 测试注入数据 读取输入流 6.2 读取配置文件数据注入 单文件 ...

  7. 超详细Mybatis学习笔记(可供下载)

    文章目录 1.简介 2.第一个Mybatis程序 搭建环境 编写代码 测试 3.CRUD(增删改查) 3.1.几个属性 3.2.select 3.3.insert 3.4.delete 3.5.upd ...

  8. Mybatis学习笔记——第一天

    Mybatis学习打卡 Mybatis学习笔记---第一天 Mybatis笔记 第一天 一.引言 1. 现有Jdbc的缺陷 2. Mybatis框架 3. 搭建环境 1) 引入jar包 2) 引入配置 ...

  9. Mybatis学习总结二

    Mybatis学习总结二 0.不需要修改的文件(在src下面) jdbc.properties文件 log4j.properties文件 SqlMapConfig.xml文件 1.高级结果映射 1.1 ...

最新文章

  1. 堆排序——HeapSort
  2. 假如易立竞吐槽程序员......
  3. LAMP搭建UCenter
  4. matlab 生成不重复的随机整数 打乱数据排列 生成深度学习数据集
  5. Servlet3.1 新增的非阻塞式IO
  6. python请输入第一个数请输入第二个数_Python小白学习之路(四)——第一次练习题...
  7. 【Python】如何用Python来操作PDF文件,建议收藏
  8. 区域锁(Scoped locking)
  9. java 证书公钥 私钥_ssl - 在Java Key中导入私钥/公钥证书对
  10. 【Kafka】Kafka安装部署
  11. PRD之道:4个撰写PRD的关键思路
  12. mpls 保留标签值_MPLS的前世今生11
  13. hownet与wordnet的区别
  14. 向量与直线,梯度与法向量,切向量
  15. 360腾讯计算机比赛,巅峰对决 腾讯电脑管家VS360详尽评测
  16. word2vec模型。该模型是用于学习文字的向量表示,称之为“word embedding”
  17. java 月的天数_Java获取某月天数
  18. Visual Studio 番茄助手 安装问题
  19. 先少谈点人工智能好吗?
  20. SpringCloud——Eureka服务注册和发现

热门文章

  1. chrome版本(chrome版本太旧)
  2. Journal of Air Transport Management 航空运输管理论文
  3. CVE-2021-43798 Grafana 未经授权的任意文件读取漏洞
  4. NOIP2016 模拟赛
  5. Laya Air - 如何在Laya3D中实现屏幕后期特效?
  6. Python爬虫大师班
  7. 创建Texture(纹理)
  8. 【面试题】谈谈你对vite的了解
  9. LeetCode—求众数
  10. 让Kubernetes落地的“三板斧”