Mybatis的属性(properties)
使用外部属性
使用内部子元素属性
加载属性的顺序
属性默认值
先来官网Mybatis官网
使用外部属性
原来我们的环境配置是这样的
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/study?userSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai"/><property name="username" value="root"/><property name="password" value="password"/></dataSource></environment></environments> </configuration>
现在可以使用属性properties进行动态配置
先来一个属性文件
driver=com.mysql.cj.jdbc.Driver url = jdbc:mysql://localhost:3306/study?userSSL=true&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username = root password = password
接着就可以在Mybatis的核心配置文件中使用属性
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><properties resource="db.properties"></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><mappers><mapper resource="com/lingaolu/dao/DeptMapper.xml"/></mappers> </configuration>
使用内部子元素属性
当然我们的属性值也可以定义在内部,如
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration><properties resource="db.properties"><property name="username" value="root"/><property name="password" value="password"/></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><mappers><mapper resource="com/lingaolu/dao/DeptMapper.xml"/></mappers> </configuration>
加载属性的顺序
如果一个属性在不只一个地方进行了配置,那么,MyBatis的加载顺序是怎么样的呢
我们就用用户名来举例,在3个地方都定义了用户名这个属性,正确的用户名是root,然后给值都是错的值,看最后报错的用户名的值是多少
db.properties文件使用root1
内部属性给值root2,直接赋值root3
单元测试一下
报错显示的是root3,说明最后使用的是直接赋值的
那么属性文件里的属性,和内部子元素属性的加载顺序如何呢,我们修改一下代码,不直接赋值,而是使用属性赋值
单元测试一下
报错显示的是root3,说明是先加载的是内部子元素属性
所以如果一个属性在不只一个地方进行了配置,那么,MyBatis 将按照下面的顺序来加载:
- 首先读取在 properties 元素体内指定的属性
- 然后根据 properties 元素中的 resource 属性读取类路径下属性文件,或根据 url 属性指定的路径读取属性文件,并覆盖之前读取过的同名属性。
- 最后读取作为方法参数传递的属性,并覆盖之前读取过的同名属性。
也就是官网所说明的
属性默认值
我们启用了属性默认值,并且内部子元素属性也不配置了用户名username
但是我们的属性文件db.properties还是配置了用户名username,先测试一下
单元测试一下
使用的还是属性文件里面的值,为什么没有使用默认的值,因为我们的默认值是指如果没有配置,才使用的
所以我们就得把属性文件里的username注释掉
现在username没有任何地方配置了,单元测试一下
成功了,说明已经使用了默认值root
Mybatis的属性(properties)相关推荐
- 属性(Properties)和字段在C#中的关系
--摘自Rocky Ren 属性(Properties)和字段在C#中的关系 主题:这篇文章我来说下属性(Properties)和字段在C#中的关系.首先申明一下,这里讲的属性就是通常说的包含get, ...
- MyBatis实体属性与表的字段不对应的解决方案
MyBatis实体属性与表的字段不对应的解决方案 参考文章: (1)MyBatis实体属性与表的字段不对应的解决方案 (2)https://www.cnblogs.com/EasonJim/p/765 ...
- 【Groovy】编译时元编程 ( AST 语法树分析 | ClassNode 根节点 | 方法 Methods 节点 | 字段 Fields 节点 | 属性 Properties 节点 )
文章目录 一.AST 语法树分析 一.AST 语法树分析 在上一篇博客 [Groovy]编译时元编程 ( 编译时元编程引入 | 声明需要编译时处理的类 | 分析 Groovy 类的 AST 语法树 ) ...
- mybatis中aplication.properties配置
*关于自己spring boot整合mybatis的application.properties的配置 数据库驱动 url username password mybatis扫描的domin包定义 m ...
- 视频 (Video) - 属性 (Properties) - 比特率 (Bitrate)
视频 (Video) - 属性 (Properties) - 比特率 (Bitrate) Bitrate is the number of bits per second. The symbol is ...
- mybatis generator 属性详解
2019独角兽企业重金招聘Python工程师标准>>> <?xml version="1.0" encoding="UTF-8"?> ...
- mybatis基础,mybatis核心配置文件properties元素
peroperties元素 可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递 为dataSource元素配置 1 <prop ...
- mybatis解决属性名和数据列名不一致
a):列名指定别名,别名为Java的属性名 <select id="selectPet" resultType="Pet"> sel ...
- mybatis SqlMapConfig.xml properties
第一种配置: <properties> <property name="jdbc.driver" value="com.mysql.jdbc.Drive ...
最新文章
- c#,winform,验证输入内容,文本框,长度,errorprovider组件,方便,快捷
- thymeleaf文档_springboot中Thymeleaf和Freemarker模板引擎的区别
- Spring 是解析配置类过程详解
- 安富莱DAC8653模块
- Struts+Tomcat搭建
- 查看本机所有请求_【松勤教育】Fiddler抓包-只抓APP的请求
- kvmweb管理工具_KVM web管理工具——WebVirtMgr(一)
- 谈谈我国电子商务中的安全问题
- Word2010双栏中某一处改变为单栏后,无法撤销还原为原来的双栏格式的解决方案
- Nginx+Php-fpm+MySQL+Redis源代码编译安装指南
- 开源APM系统skywalking介绍与使用
- ZooKeeper教程(一)----Centos7下安装ZooKeeper(单机版)
- 大数据Hadoop之——任务调度器Oozie(Oozie环境部署)
- uygurqa输入法android,uygurqa输入法app
- 华为:一个中国民族企业的“下半场”在哪里?
- 金蝶K3与IMS系统搭建销售订单交期回复系统
- 强烈推荐一个上网以来见过的最好的学习资料网站,全部免费!
- JZ2440.jflash配置
- 鼠标移动文字上显示图片
- 用贾樟柯访谈评《疯狂的程序员》
热门文章
- 奈奎斯特与香农定理_奈奎斯特定理和香农定理
- 【白手起家】Python教程01——Python总论
- Deeplab v1:SEMANTIC IMAGE SEGMENTATION WITH DEEP CONVOLUTIONAL NETS AND FULLY CONNECTED CRFS
- 停车场车辆定位管理系统
- TFN TD11M 观察手用 手持式热像仪双光谱 双光谱测距热成像仪
- 类型多样的祥云免抠元素素材,速来收藏
- maven工程的目录结构
- Power bi 超市经典案例之利润分析(二)
- 微信小程序云开发入门(二)-数据库详解
- 【ppt课件制作】Focusky教程 | 自制模板