【狂神Mybatis笔记】配置解析
核心配置文件:mybatis-config.xml
Mybatis的配置文件包含了会影响Mybatis行为的设置和属性信息
环境配置(environments)
要求:学会使用配置多套运行环境
MyBatis可以适应多种环境。尽管可以配置多个环境,但是每个SqlSessionFactory只能选择一种环境。
如果要切换环境,修改default的值即可
transactionManager:事务管理器
在MyBatis中有两种类型的事务管理器(了解)
JDBC:直接使用了JDBC的提交和回滚设置,依赖于从数据源得到的连接来管理事务作用域。
如果使用Spring+Mybatis,则没有必要配置事务管理器,因为Spring模块会使用自带的模块覆盖前面的配置。
数据源:datesource
dataSource元素使用标准的JDBC数据源接口来配置JDBC连接对象的资源
有三种内建的数据源类型
UNPOOLED:(没有连接池)
每次被请求时打开和关闭连接。虽然有点慢,但对于在数据库连接可用性方面没有太高要求的简单应用程序来说,是一个很好的选择。
不同的数据库在性能方面的表现也是不一样的,对于某些数据库来说,使用连接池并不重要
,这个配置就很适合这种情形。
UNPOOLED属性:
POOLED:(默认)
这种数据源的实现利用池的概念将JDBC连接对象组织起来,避免了创建新的连接实例时所必需的
初始化和认证时间,这是一种使得并发web应用快速响应请求的流行处理方式。
除了上述提到UNPOOLED下的属性外,还有更多属性来配置POOLED的数据源
properties属性:
可以通过properties属性来实现引用配置文件
这些属性都是可外部配置且可动态替换的,既可以再典型的java属性文件中配置,也可通过properties元素的子元素来传递
编写一个配置文件:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?userSSL=true&userUnicode=true&characterEncoding=UTF-8
username=root
password=
在核心配置文件中引入:
若冲突,优先使用外部配置文件
类型别名(typeAliases):
类型别名是为java类型设置一个短的名字,它只和xml配置有关,存在的意义仅在于用来减少完全限定名的冗余。
<typeAliases><typeAlias type="包名.类名" alias="类名">
</typeAliases>
<typeAliases><package="包名"/>
</typeAliases>
在实体类比较少的时候,使用第一种;实体类比较多使用第二种;第一种可以自定义别名,第二种不能自定义别名。
但是扫描包的情况下可以在类的上面写注解起别名可以实现自定义别名:
设置settings
cacheEnabled(true|false) 全局地开启或关闭配置文件中的所有映射器已经配置的任何缓存。
lazyLoadingEnabled(true|false) 延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。特定关联关系中可通过设置fetchType属性来覆盖该项的开关状态。
logImpl:指定MyBatis所用日志的具体实现,未指定时将自动查找
SLF4J|LOG4J|LOG4J2|JDK_LOGGING|
COMMONS_LOGGING|
STDOUT_LOGGING|
NO_LOGGING
映射器mappers:
MapperRegistry:注册绑定Mapper文件
使用相对于类路径的资源引用
使用class文件绑定注册:
注意: 使用class注册,接口和Mapper配置文件必须同名;接口和Mapper配置文件必须在同一个包下
使用package绑定注册:
注意:使用package注册绑定,和class注册注意事项相同。
推荐使用resource绑定
作用域和声明周期:
生命周期和作用域是至关重要的,因为错误的使用会导致严重的并发问题。
● 一旦创建SqlSessionFactory,就不再需要它了。SqlSessionFactory为局部变量
●SqlSessionFactory:
可以理解为数据库连接池。
SqlSessionFactory一旦被创建就应该在应用的运行期间一直存在,没有任何理由丢弃或者重新创建另一个实例。SqlSessionFactory的最佳作用域是应用作用域。
有很多方法可以做到,最简单的就是使用单例模式或者静态模式。
●SqlSession:
可以理解为连接到连接池的一个请求,需要开启和关闭,否则资源被占用。每个线程都应该有它自己的SqlSession实例。SqlSession实例不是线程安全的,因此是不能被共享的,所以它的最佳作用域是请求或方法作用域。
每一个mapper,代表一个具体的业务
【狂神Mybatis笔记】配置解析相关推荐
- MyBatis——XML配置解析
目录 1. 环境配置(environments) 2. 属性(properties) 3. 类型别名(typeAliases) 方式一:通过typeAlias起别名 方式二:通过package起别名 ...
- MyBatis常用配置解析-Properties标签
实际开发中,习惯将数据源的配置信息单独抽取成一个properties文件,该标签可以加载额外配置的properties文件
- MyBatis常用配置解析-mapper标签
该标签的作用是加载映射的,加载方式有如下几种: •使用相对于类路径的资源引用,例如:<mapper resource="org/mybatis/builder/AuthorMapper ...
- MyBatis常用配置解析-environments标签
数据库环境的配置,支持多环境配置 其中,事务管理器(transactionManager)类型有两种: •JDBC:这个配置就是直接使用了JDBC 的提交和回滚设置,它依赖于从数据源得到的连接来管理事 ...
- 【狂神MyBatis笔记】map作为参数传递类型进行增删改查模糊查询
接口中的参数传入map: 实现类的传入参数为map的键的名称,这个键可以自定义名称: 例:根据ID获取用户 接口: //根据ID获取用户User getUserById2(Map<String, ...
- 黑马程序员-MyBatis笔记
一.什么是Mybatis mybatis 是一个优秀的基于java的持久层框架,它内部封装了 jdbc,使开发者只需要关注sql语句本身,而不需要花费精力 去处理加载驱动.创建连接.创建stateme ...
- 【狂神JAVA】MyBatis笔记
简介 自学的[狂神JAVA]MyBatis 分享自写源码和笔记,希望对大家有帮助 本人配置 jdk13.0.2 (jdk1.7以上均可) Maven 3.6.3 MySQL 5.7.23 (mysql ...
- Java-Mybatis(二): Mybatis配置解析、resultMap结果集映射、日志、分页、注解开发、Mybatis执行流程分析
Java-Mybatis-02 学习视频:B站 狂神说Java – https://www.bilibili.com/video/BV1NE411Q7Nx 学习资料:mybatis 参考文档 – ht ...
- 【SpringBoot】最新版2019Spring Boot配置解析,源码解析(速成SpringBoot)——学习笔记版【2】
SpringBoot配置文件 文章目录 SpringBoot配置文件 四.配置文件 1.简介 2.YAML用法 2.1 简介 2.2语法 3.为属性注入值 3.1使用.yml配置文件 3.1编写.ym ...
最新文章
- iOS更改AppIcon
- 【KVM系列05】Libvirt 介绍
- oracle中匹配函数怎么用,ORACLE 使用正则表达式的函数
- .NET获取不到js写的cookie解决方法
- prometheus-net.DotNetRuntime 获取 CLR 指标原理解析
- 17.深度学习练习:Character level language model - Dinosaurus land
- 选择开源项目什么最重要?许可证排第一
- MongoDB查询及索引优化
- tomcat8下载时各个版本的说明
- 爱奇艺落子IP源头 全产业链开放协同助攻原创内容
- access是用来干什么的_access是干什么用的
- JavaScript完整版国家-省-市地区,级联效果(带效果图哦)
- linux apple开发环境,Linux上构筑iPhone OS3.1.2开发环境 实例操作
- 【HTMLCSS】CSS当中设置背景图片不显示的问题
- oracle grid infrastructure 安装,安装Oracle Grid Infrastructure for a Standalone Server
- vim 命令集合-去除背景颜色高亮
- IOS开发协议使用之──非正式协议和正式协议
- 百度地图android版 v4.0,百度地图4.0正式发布 支持iOS与Android
- 基于人眼纵横比计算的人眼闭合检测算法
- Linux 解决部分英文乱码问题
热门文章
- Java开源项目Hibernate包作用详解
- Vijos P1786 质因数分解【质因数分解】
- 九章算术卷第七 盈不足
- 程序设计入门经典题解(百练篇)
- /usr/bin/ld: cannot find -l*
- 机器学习基础(十九)—— Trick
- python用generator打印杨辉三角_python写generator输出杨辉三角遇到问题,望高手解答!...
- python解析原理_Python 中 -m 的典型用法、原理解析与发展演变
- 32岁了 学python 来的及吗-32岁的程序员去了国企工作, 晒出年薪, 网友: 我没看错吧...
- 5岁自学python编程-哈尔滨python少儿编程