zoukankan      html  css  js  c++  java
  • 11_关于SqlMapperConfig.xml

    【简述】

    SqlMapConfig.xml是Mybatis的全局配置文件,配置内容如下:

    1.properties---------属性

    2.settings-----------全局配置参数

    3.typeAliases--------类型别名

    4.typeHandlers------类型处理器

    5.objectFactory-----对象工厂

    6.plugins------------插件

    7.environments-----环境集合属性对象

        environments ---------环境子属性对象

        transactionManager----------事务管理

           dataSource-------------------数据源

    8.mappers ---------映射器

    (1)properties属性

    需求:

    将数据库中的连接参数单独配置在db.properties中,只需要在sqlMapConfig.xml中加载该db.properties配置文件。

    在sqlMapConfig.xml中就不需要对数据库连接参数硬编码。

     配置在db.properties中的优点:方便对参数进行统一的管理,其他的xml文件可以引用该db.properties

    原先的【sqlMapConfig.xml】数据库相关的配置如下:

    修改之后的【sqlMapConfig.xml】如下,注意不要忘了<properties resource="db.properties"></properties>

     

    修改之后 在【db.properties】配置文件内容如下

    【MyBatis加载属性的顺序】

    1.在properties元素体内定的属性首先被加载。

    2.然后会读取properties元素中resource或url加载的属性,它会覆盖已读取的同名属性(所以命名要注意)

    3.最后会读取parameterType传递的属性,它会覆盖已读取的同名属性。

    【注意】

    不要在<properties>元素体内添加任何属性值,只将属性值定义在db.properties文件中。

    在db.properties文件中定义属性文件名要有一定的特殊性,例如jdbc.xxx.xxx

     (2)settings全局参数配置

    MyBatis框架在运行时可以调整一些运行参数

    比如:开启二级缓存、开启延迟加载。。。。

    (3)typeAliases(别名)(学习重点!)

    需求:

    在mapper.xml中,定义了很多的statement

    【默认的一些别名的源码】

    registerAlias("string", String.class);
    registerAlias("byte", Byte.class);
    registerAlias("long", Long.class);
    registerAlias("short", Short.class);
    registerAlias("int", Integer.class);
    registerAlias("integer", Integer.class);  //可以发现,parameter="int"或者parameterType="integer"最后都会指向Integer
    registerAlias("double", Double.class);
    registerAlias("float", Float.class);
    registerAlias("boolean", Boolean.class);
    registerAlias("byte[]", Byte[].class);
    registerAlias("long[]", Long[].class);
    registerAlias("short[]", Short[].class);
    registerAlias("int[]", Integer[].class);
    registerAlias("integer[]", Integer[].class);
    registerAlias("double[]", Double[].class);
    registerAlias("float[]", Float[].class);
    registerAlias("boolean[]", Boolean[].class);
    registerAlias("_byte", byte.class);
    registerAlias("_long", long.class);
    registerAlias("_short", short.class);
    registerAlias("_int", int.class);
    registerAlias("_integer", int.class);
    registerAlias("_double", double.class);
    registerAlias("_float", float.class);
    registerAlias("_boolean", boolean.class);
    registerAlias("_byte[]", byte[].class);
    registerAlias("_long[]", long[].class);
    registerAlias("_short[]", short[].class);
    registerAlias("_int[]", int[].class);
    registerAlias("_integer[]", int[].class);
    registerAlias("_double[]", double[].class);
    registerAlias("_float[]", float[].class);
    registerAlias("_boolean[]", boolean[].class);
    registerAlias("date", Date.class);
    registerAlias("decimal", BigDecimal.class);
    registerAlias("bigdecimal", BigDecimal.class);
    registerAlias("biginteger", BigInteger.class);
    registerAlias("object", Object.class);
    registerAlias("date[]", Date[].class);
    registerAlias("decimal[]", BigDecimal[].class);
    registerAlias("bigdecimal[]", BigDecimal[].class);
    registerAlias("biginteger[]", BigInteger[].class);
    registerAlias("object[]", Object[].class);
    registerAlias("map", Map.class);
    registerAlias("hashmap", HashMap.class);
    registerAlias("list", List.class);
    registerAlias("arraylist", ArrayList.class);
    registerAlias("collection", Collection.class);
    registerAlias("iterator", Iterator.class);
    registerAlias("ResultSet", ResultSet.class);

    【针对自己定义的pojo类型的别名】

    在【sqlMapper.xml中】,针对单个别名的定义

    在【sqlMapper.xml中】,针对批量别名的定义(批量的方式较为常用

    指定包名,MyBatis自动扫描包中的pojo类,自动定义别名,别名就是类名(首字母大小写均可)

    (4)typeHandlers(类型处理器)

     MyBatis中通过typeHandlers完成jdbc类型和java类型的转换。

    通常情况下,mybatis提供的类型处理器满足日常需求,无需自定义。

    (5)mappers(映射配置)

    1.例子【sqlMapConfig.xml】中通过resource加载单个映射文件的方式:

    2.通过mapper接口加载单个映射文件

    需要遵循一些规范:需要将XXXmapper.java和XXXmapper.xml映射文件名保持一致,且在一个目录中

    上边的规范前提:使用mapper代理方法

     3.批量加载

    批量加载mapper接口的包名。myBatis自动扫描包下边的所有的mapper接口进行加载

    遵循的规范:需要将XXXmapper.java和XXXmapper.xml映射文件名保持一致,且在一个目录中

    上边的规范前提:使用mapper代理方法

  • 相关阅读:
    监控里的主码流和子码流是什么意思
    监控硬盘容量计算
    一个能让你了解所有函数调用顺序的Android库
    电工选线
    oracle linux dtrace
    list all of the Oracle 12c hidden undocumented parameters
    Oracle Extended Tracing
    window 驱动开发
    win7 x64 dtrace
    How to Use Dtrace Tracing Ruby Executing
  • 原文地址:https://www.cnblogs.com/HigginCui/p/5700664.html
Copyright © 2011-2022 走看看