MyBatis全局配置文件和映射文件
配置文件
MyBatis 的配置文件包含了影响 MyBatis 行为的设置(settings)和属性(properties)信息。
配置文件结构
12345678910111213 |
configuration 配置 properties 属性settings 设置typeAliases 类型命名typeHandlers 类型处理器objectFactory 对象工厂plugins 插件environments 环境 environment 环境变量 transactionManager 事务管理器 dataSource 数据源databaseIdProvider 数据库厂商标识mappers 映射器 |
properties属性
可外部配置且可动态替换的,既可以在典型的Java 属性文件中配置,也可以通过 properties 元素的子元素来配置
1234567 |
<properties> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://58.87.70.124:3306/test_mybatis" /> <property name="username" value="root" /> <property name="password" value="123456" /> </properties> |
你可以创建一个资源文件,名为jdbc.properties的文件,将四个连接字符串的数据在资源文件中通过键值 对(key=value)的方式放置,不要任何符号,一条占一行.
mybastis-conf.xml
123456789101112131415161718 |
<!-- properties: 引入外部的属性文件 resource: 从类路径下引入属性文件 url: 引入网络路径或者是磁盘路径下的属性文件--><properties resource="db.properties" ></properties> <environments default="development"> <!-- 具体的环境 --> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </dataSource> </environment> </environments> |
jdbc.propertis
1234 |
jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://58.87.70.124:3306/test_mybatisjdbc.username=rootjdbc.password=123456 |
settings设置
MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的运行时行为。
123456789101112131415161718 |
<settings><setting name="cacheEnabled" value="true"/><setting name="lazyLoadingEnabled" value="true"/><setting name="multipleResultSetsEnabled" value="true"/><setting name="useColumnLabel" value="true"/><setting name="useGeneratedKeys" value="false"/><setting name="autoMappingBehavior" value="PARTIAL"/><setting name="autoMappingUnknownColumnBehavior" value="WARNING"/><setting name="defaultExecutorType" value="SIMPLE"/><setting name="defaultStatementTimeout" value="25"/><setting name="defaultFetchSize" value="100"/><setting name="safeRowBoundsEnabled" value="false"/><setting name="mapUnderscoreToCamelCase" value="false"/><setting name="localCacheScope" value="SESSION"/><setting name="jdbcTypeForNull" value="OTHER"/><setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/></settings> |
原图片链接
typeAliases
类型别名是为 Java 类型设置一个短的名字,可以方便我们引用某个类。
123 |
<typeAliases> <typeAlias type="com.hph.mybatis.beans.Employee" alias="employee"/></typeAliases> |
类很多的情况下,可以批量设置别名这个包下的每一个类创建一个默认的别名,就是简单类名小写
1234 |
<typeAliases> <!-- <typeAlias type="com.hph.mybatis.beans.Employee" alias="employee"/> --> <package name="com.hph.mybatis.beans"/></typeAliases> |
MyBatis已经取好的别名
environments
- MyBatis可以配置多种环境,比如开发、测试和生产环境需要有不同的配置
- 每种环境使用一个environment标签进行配置并指定唯一标识符
- 可以通过environments标签中的default属性指定一个环境的标识符来快速的切换环境
- environment-指定具体环境
- id:指定当前环境的唯一标识 transactionManager、和dataSource都必须有
1234567891011121314151617181920 |
<environments default="oracle"> <environment id="mysql"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> <environment id="oracle"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${orcl.driver}" /> <property name="url" value="${orcl.url}" /> <property name="username" value="${orcl.username}" /> <property name="password" value="${orcl.password}" /> </dataSource> </environment> </environments> |
transactionManager
type参数
JDBC:使用JDBC的提交和回滚设置,依赖于从数据源得到的连接来管理事务范围。 JdbcTransactionFactory
MANAGED:不提交或回滚一个连接、让容器来管理事务的整个生命周期(比如JEE应用服务器的上下文)。 ManagedTransactionFactory
自定义:实现TransactionFactory接口,type=全类名/别名
dataSource
UNPOOLED:不使用连接池, UnpooledDataSourceFactory
POOLED:使用连接池, PooledDataSourceFactory
JNDI: 在EJB 或应用服务器这类容器中查找指定的数据源
实际开发中我们使用Spring管理数据源,并进行事务控制的配置来覆盖上述配置
mappers
在mybatis初始化的时候,mybatis需要引入的Mapper映射文件.
mapper逐个注册SQL映射文件
resource : 引入类路径下的文件
url : 引入网络路径或者是磁盘路径下的文件
class : 引入Mapper接口.
有SQL映射文件 , 要求Mapper接口与 SQL映射文件同名同位置.
没有SQL映射文件 , 使用注解在接口的方法上写SQL语句.
12345 |
<mappers> <mapper resource="EmployeeMapper.xml" /> <mapper class="com.hph.mybatis.dao.EmployeeMapper"/> <package name="com.atguigu.mybatis.dao"/></mappers> |
123 |
<mappers> <package name="com.hph.mybatis.dao"></package></mappers> |
注意
如果是使用的IDEA的话 IDEA 默认不扫描src/main/java 目录会出现org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): 方法解决链接
MyBatis映射文件
MyBatis的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 就是针对SQL 构建的,并且比普通的方法做的更好。
SQL 映射文件有很少的几个顶级元素(按照它们应该被定义的顺序):
cache – 给定命名空间的缓存配置。
cache-ref – 其他命名空间缓存配置的引用。
resultMap – 是最复杂也是最强大的元素,用来描述如何从数据库结果集中来加对象。
parameterMap – 已废弃!老式风格的参数映射。内联参数是首选,这个元素可能在将来被移除。
sql – 可被其他语句引用的可重用语句块。
insert – 映射插入语句
update – 映射更新语句
delete – 映射删除语句
select – 映射查询语
MyBatis全局配置文件和映射文件相关推荐
- Mybatis之配置文件与映射文件的“那些事”,你真的知道吗?
编译软件:IntelliJ IDEA 2019.2.4 x64 操作系统:win10 x64 位 家庭版 Maven版本:apache-maven-3.6.3 Mybatis版本:3.5.6 目录 一 ...
- MyBatis 源码分析 - 映射文件解析过程
1.简介 在上一篇文章中,我详细分析了 MyBatis 配置文件的解析过程.由于上一篇文章的篇幅比较大,加之映射文件解析过程也比较复杂的原因.所以我将映射文件解析过程的分析内容从上一篇文章中抽取出来, ...
- MyBatis全局配置文件介绍
一.properties properties标签可以用于引入外部的配置文件,也可以用于定义全局变量. 比如我们在配置数据源的时候习惯把相关的信息单独的放在一个配置文件中,方便修改. 数据库配置信息d ...
- 8、mybatis中的sql映射文件详解(3)
对于初学者,如何进行mybatis的学习呢?我总结了几点,会慢慢的更新出来.首先大家需要了解mybatis是什么.用mybatis来做什么.为什么要用mybatis.有什么优缺点:当知道了为什么的时候 ...
- java元婴期(23)----java进阶(mybatis(2)---mapper代理mybatis核心配置文件输入输出映射)
1.mapper代理 1.mybatis开发dao的方法----引入(为啥要使用mapper代理) 1.SqlSession使用范围 1.SqlSessionFactoryBuilder 通过SqlS ...
- 4.MyBatis全局配置文件SqlMapConfig.xml
4.1 properties(属性):将数据路连接参数单独的配置在db.properties配置文件中,只需要在 SqlMapConfig.xml中加载db.properties的属性值即可,就不需要 ...
- MyBatis全局配置文件MyBatis-config.xml代码
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC ...
- Mybatis学习--Mapper.xml映射文件
简介 Mapper.xml映射文件中定义了操作数据库的sql,每个sql是一个statement,映射文件是mybatis的核心. 映射文件中有很多属性,常用的就是parameterType(输入类型 ...
- hibernate mysql 配置文件_hibernate 框架的配置文件和映射文件以及详解
从官网下载的压缩包其实有很多有用的东西. 最重要的就是jar包.这个不用说. 第二个是帮助文档:如图,各种语言,格式半本的.很贴心. 第三个.源代码. 第四个就是本文的重点,配置文件的标准文档. 下面 ...
最新文章
- uniapp动态设置style和class样式
- Java代码的基本格式及注释
- 【数据结构与算法】之深入解析“寻找峰值”的求解思路与算法示例
- Https 与 SSl证书 概要
- Deep learning Reading List
- jqGrid 常用方法
- html 添加窗口小部件,如何:为自定义窗口小部件定义主题(样式)项
- spark学习-62-Spark:Yarn-cluster和Yarn-client区别与联系
- windows版一键绕id工具_【实用工具】一键关闭/开启Windows防火墙、禁止更新系统...
- AI 生态赋能 2018 论坛来袭!转型 AI 看这里!
- 阶段3 1.Mybatis_07.Mybatis的连接池及事务_1 今日课程内容介绍
- 3、ORBSLAM闭环检测终局之战之sim3计算流程,确定是否检测到闭环
- DDU(Display Driver Uninstaller) 18.0.3.5 显卡驱动彻底卸载清理工具,支持卸载NVIDIA, AMD, Intel
- 操作系统文件保护及文件共享
- vue echarts 条纹柱状横向图
- layui+thymeleaf 点击弹框右上角叉号刷新父页面
- 在线制作平台H5制作
- Rsync 下行同步 + Inotify 实时同步详解
- 关于TCP长连接的一些简单代码
- 天河服务器维修,天河云服务器升级
热门文章
- thinkphp 框架自动加载原理_这下你应该理解ThinkPHP的Loader自动加载了
- 2019手机号码正则表达式
- 报错500 DEFAULT_INCOMPATIBLE_IMPROVEMENTS
- 编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议6~10)...
- Lazyload 延迟加载效果
- 最短路径之Dijkstra算法
- 1月31日 资源网站(素材模板)
- 大家一起做训练 第一场 A Next Test
- Hadoop MapReduce执行过程(一)
- leetcode 203 python3