mybatis详解——properties以及别名定义
2017-08-18 17:00
176 查看
IT优就业 2017-08-08 09:28
过去我们介绍了mybatis的增删改查入门实例,我们发现在 mybatis-configuration.xml 的配置文件中,对数据库的配置都是硬编码在这个xml文件中,如下图,那么我们如何改进这个写法呢?
如果数据库有变化,我们就可以通过修改 db.properties 文件来修改,而不用去修改 mybatis-configuration.xml 文件
注意:我们也可以在中手动增加属性
那么这个时候是读取的username 是以 db.properties 文件中的 root 为准,还是以自己配置的 aaa 为准呢?
我们先看一段 properties 文件加载的源码
2、然后读取 resource 路径表示文件中的属性,如果有它会覆盖已经读取的属性;如果 resource 路径不存在,那么读取 url 表示路径文件中的属性,如果有它会覆盖第一步读取的属性值
3、最后读取 parameterType 传递的属性值,它会覆盖已读取的同名的属性
前面两步好理解,第三步我们可以举个例子来看:
我们在 userMapper.xml 文件中进行模糊查询
这个时候你会发现无论你后台传给这个查询语句什么参数,都是 select * from user where username like '%root%'
首先在全局配置文件 mybatis-configuration.xml 文件中添加如下配置:是在标签下
第二步通过 user 引用
二、批量定义别名
在全局配置文件 mybatis-configuration.xml 文件中添加如下配置:是在标签下
引用的时候类名的首字母大小写都可以。
过去我们介绍了mybatis的增删改查入门实例,我们发现在 mybatis-configuration.xml 的配置文件中,对数据库的配置都是硬编码在这个xml文件中,如下图,那么我们如何改进这个写法呢?
我们将 数据库的配置语句写在 db.properties 文件中
在 mybatis-configuration.xml 中加载db.properties文件并读取
如果数据库有变化,我们就可以通过修改 db.properties 文件来修改,而不用去修改 mybatis-configuration.xml 文件
注意:我们也可以在中手动增加属性
那么这个时候是读取的username 是以 db.properties 文件中的 root 为准,还是以自己配置的 aaa 为准呢?
我们先看一段 properties 文件加载的源码
通过源码我们可以分析读取优先级:
1、在 properties 内部自定义的属性值第一个被读取2、然后读取 resource 路径表示文件中的属性,如果有它会覆盖已经读取的属性;如果 resource 路径不存在,那么读取 url 表示路径文件中的属性,如果有它会覆盖第一步读取的属性值
3、最后读取 parameterType 传递的属性值,它会覆盖已读取的同名的属性
前面两步好理解,第三步我们可以举个例子来看:
我们在 userMapper.xml 文件中进行模糊查询
这个时候你会发现无论你后台传给这个查询语句什么参数,都是 select * from user where username like '%root%'
mybatis 的别名配置
在 userMapper.xml 文件中,我们可以看到resultType 和 parameterType 需要指定,这这个值往往都是全路径,不方便开发,那么我们就可以对这些属性进行一些别名设置mybatis 默认支持的别名
自定义别名
一、定义单个别名首先在全局配置文件 mybatis-configuration.xml 文件中添加如下配置:是在标签下
第二步通过 user 引用
二、批量定义别名
在全局配置文件 mybatis-configuration.xml 文件中添加如下配置:是在标签下
引用的时候类名的首字母大小写都可以。
相关文章推荐
- mybatis 详解(四)------properties以及别名定义
- mybatis 详解(四)------properties以及别名定义
- mybatis 详解(四)------properties以及别名定义
- mybatis 详解(四)------properties以及别名定义
- mybatis 详解(四)------properties以及别名定义
- JAVAWEB开发之mybatis详解(一)——mybatis的入门(实现增删改查操作)、自定义别名、抽取代码块以及动态SQL的使用
- JAVAWEB开发之mybatis详解(一)——mybatis的入门(实现增删改查操作)、自定义别名、抽取代码块以及动态SQL的使用
- help ;man ;history详解以及别名的定义
- mybatis如何实现批量更新和插入新增实例详解(附SQL以及mapper配置)
- 详解C#接口以及实现/C# 接口中不能定义字段
- mybatis基本增删改查、缓存,延迟加载以及别名的配置
- IP头、TCP头、UDP头详解以及定义
- IP头、TCP头、UDP头详解以及定义
- MyBatis的Mapper接口以及Example的实例函数及详解
- 【网络】IP头、TCP头、UDP头详解以及定义
- 深入浅出Mybatis系列(三)---配置详解之properties与environments(mybatis源码篇)
- MyBatis的Mapper接口以及Example的实例函数及详解
- IP头、TCP头、UDP头详解以及定义(全)
- 配置详解之properties与environments(mybatis源码篇)