MyBatis基础入门《五》核心配置文件

描述:

   在前面的章节中,简单的学习使用了一下mybatis,对于配置文件没有过多详细说明。

   这里先描述项目中的一个核心配置文件:mybatis-config.xml 文件。

    资料参考:http://www.mybatis.org/mybatis-3/

 <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd"> <!-- 配置 -->
<configuration> <!-- 可以配置在java属性配置文件中 -->
<properties></properties> <!-- 修改MyBatis在运行时的行为方式 -->
<settings></settings> <!-- 为java类命令一个别名(简称) -->
<typeAliases></typeAliases> <!-- 类型处理器 -->
<typeHandlers></typeHandlers> <!-- 对象工厂 -->
<objectFactory type=""></objectFactory> <!-- 插件 -->
<plugins></plugins> <!-- 环境 -->
<environments default=""> <!-- 环境变量 -->
<environment id=""> <!-- 配置事物管理器 -->
<transactionManager type=""></transactionManager>
<!-- 配置数据源 -->
<dataSource type=""></dataSource> </environment> </environments> <!-- 映射器 -->
<mappers></mappers> </configuration>

  注意:

    上面的这个配置文件中的标签,在书写的时候必须要按照这个顺序,不然Mybatis在解析这个文件的时候,会报错的。

<properties></properties>

>>> 配置properties元素的两种方式

  1. 通过外部指定的方式(database.properties),实现动态配置

    > 配置properties的resource属性

    

      前面章节中使用是这种方式,在位置1处,进行外部引入。然后在位置2处使用。

  

  2. 直接配置为xml,实现动态配置

    > properties 的name和value

    

  properties问题:

    1. 若两种方式同时都用了,那么哪种方式优先?

      > 配置properties的resource指定

      > 配置property的name和value

      

    测试方式:

      1. 修改标签property的value属性值,运行查询测试方法,可以正常执行。

      2. 恢复被修改的property标签的value属性值,然后修改database.properties文件中的数据,在运行查询测试方法,程序抛出异常错误。

    结论: resource属性值的优先级高于property子节点配置的值。

<settings></settings>

1. 用来修改MyBatis运行时的行为方式

2. 主要是MyBatis的一些全局配置属性的设置

   例如:配置一个延迟加载

  

<typeAliases></typeAliases>

1. 用来修改类型别名

2. 仅仅只关联XML配置,简写冗长的java名,用法见:《MyBatis基础入门《三》Select查询集合》 select查询方式3

<environments></environments>

1. 表示配置MyBatis的多套运行环境,将SQL映射到多个不同的数据库上

2. 子元素节点:environment,但是必须指定其中一个为默认运行环境(通过default指定)

  <transactionManager></transactionManager>  事物管理器

  <transactionManager type = "[ JDBC | MANAGED]" />

                   jdbc    |   managed 托管

  <dataSource></dataSource>

   >>>  dataSource元素使用的基本的JDBC数据源接口来配置JDBC连接对象的资源

   >>> 有三种内建的数据源类型
      <dataSource type="[ UNPOOLED | POOLED | JNDI ]" />

  

<mappers></mappers>

1. 映射器,定义SQL映射语句

2. 须在配置中引用Mapper映射文件

... ...

  

如有问题,欢迎纠正!!!

如有转载,请标明源处:https://www.cnblogs.com/Charles-Yuan/p/9862302.html

参考资料:http://www.mybatis.org/mybatis-3/zh/configuration.html

MyBatis基础入门《五》核心配置文件的更多相关文章

  1. MyBatis基础入门《十五》ResultMap子元素(collection)

    MyBatis基础入门<十五>ResultMap子元素(collection) 描述: 见<MyBatis基础入门<十四>ResultMap子元素(association ...

  2. Mybatis基础入门学习

    Mybatis基础入门学习 mybatis架构分析 搭建测试mybatis架构 )下载并导入mybatis3.2.7.jar(架构),mysql-connector-java-5.1.7-bin.ja ...

  3. MyBatis基础入门《十七》动态SQL

    MyBatis基础入门<十七>动态SQL 描述: >> 完成多条件查询等逻辑实现 >> 用于实现动态SQL的元素主要有: > if > trim > ...

  4. MyBatis基础入门《三》Select查询集合

    MyBatis基础入门<三>Select查询集合 描述: 代码新增了一个MybatisUtil工具类,查询数据库返回集合的时候,接收数据的三种方式.由于代码会渐渐增多,未涉及改动过的文件不 ...

  5. MyBatis基础入门《二》Select查询

    MyBatis基础入门<二>Select查询 使用MySQL数据库,创建表: SET NAMES utf8mb4; ; -- ---------------------------- -- ...

  6. MyBatis基础入门

    1.MyBatis概述 MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动.创建connection.创 ...

  7. MyBatis基础入门《二十》动态SQL(foreach)

    MyBatis基础入门<二十>动态SQL(foreach) 1. 迭代一个集合,通常用于in条件 2. 属性 > item > index > collection : ...

  8. MyBatis基础入门《十九》动态SQL(set,trim)

    MyBatis基础入门<十九>动态SQL(set,trim) 描述: 1. 问题 : 更新用户表数据时,若某个参数为null时,会导致更新错误 2. 分析: 正确结果: 若某个参数为nul ...

  9. MyBatis基础入门《十八》动态SQL(if-where)

    MyBatis基础入门<十八>动态SQL(if-where) 描述: 代码是在<MyBatis基础入门<十七>动态SQL>基础上进行改造的,不再贴所有代码,仅贴改动 ...

随机推荐

  1. Abhyankar's Conjecture

    http://www.math.purdue.edu/about/purview/spring95/conjecture.html A Layman's Perspective of Abhyanka ...

  2. Druid 在有赞的实践

    https://mp.weixin.qq.com/s?__biz=MzAxOTY5MDMxNA==&mid=2455759407&idx=1&sn=28390d7f5b2685 ...

  3. SR锁存器

    CRM(临界连续模式)BOOST PFC 电路控制系统 SR锁存器 S和R都等于0的时候为什么有两个不同的Q?正因为这样才叫锁存器.Q’是Q的取反,不可能相同.Q*和Q‘不一样.Q是Q*的前一个状态. ...

  4. day5_判断价格输入是否是正整数或正小数

    def check_float_integer(s): #判断价格正确的正整数或正小数 s = str(s) if check_integer(s) == True: return True elif ...

  5. 内部排序->插入排序->其它插入排序->表插入排序

    文字描述 和之前的插入排序比,表插入排序可以保证排序过程中不移动记录:因此表插入排序所用的存储结构和之前的顺序存储不同,表插入排序采用静态链表类型作为待排记录序列的存储结构,设数组中下标0的分量为表头 ...

  6. RN无限轮播以及ScrollView的大小调节问题

    如果你的ScrollView的大小是全屏,height不能用,这种情况需要给ScrollView添加一个容器View,然后调节容器View的大小 无限轮播这里我使用的是一个第三方的插件react-na ...

  7. golang gui library 库

    andlabs/ui已经重写,稳定性增强,但是组件很少,只提供了几种基础的控件,慎用.gxui死了,别用.linuxdeepin转QT了,所以…… windows系统最好的选择是walk. 首先,写w ...

  8. Spark之数据倾斜 --采样分而治之解决方案

    1 采样算法解决数据倾斜的思想 2 采样算法在spark数据倾斜中的具体操作

  9. java中Long的比较

    Long的比较要用equals而不要用== 当Long为常量且常量值小于一个字节(<=127)时,两个Long指向同一个常量内容: Long userId=127L; Long authorId ...

  10. python 获取SLB信息 更换证书

    首先安装阿里云SDK pip install aliyun-python-sdk-core pip install aliyun-python-sdk-slb 可以配合jenkins传递参数 #获取s ...