Mybatis知识整理(五)Mybatis之SqlMapConfig.xml

本文详细介绍了MyBatis核心配置文件SqlMapConfig.xml的各项配置,包括属性加载、类型别名设置、类型处理器介绍及映射文件配置等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

properties(属性)

settings(全局配置参数) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件)

 environments(环境集合属性对象)

 environment(环境子属性对象)

 

transactionManager(事务管理) dataSource(数据源)

mappers(映射器)

(1)properties属性 

需求:

 将数据库连接参数单独配置在db.properties中,只需要在SqlMapConfig.xml中加载db.properties的属性值。在SqlMapConfig.xml中就不需要对数据库连接参数硬编码。

 将数据库连接参数只配置在db.properties中,原因:方便对参数进行统一管理,其它xml可以引用该db.properties。

 在sqlMapConfig.xml加载属性文件:

 properties特性:

 注意: MyBatis 将按照下面的顺序来加载属性:

 ◆ 在 properties 元素体内定义的属性首先被读取。

◆ 然后会读取properties 元素中resource或 url 加载的属性,它会覆盖已读取的同名属性。  

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

(2)typeAliases(别名)重点

 

在mapper.xml中,定义很多的statement,statement需要parameterType指定输入参数的类型、需要resultType指定输出结果的映射类型。

如果在指定类型时输入类型全路径,不方便进行开发,可以针对parameterType或resultType指定的类型定义一些别名,在mapper.xml中通过别名定义,方便开发。

 

 别名 _byte  _long _short  _int  _integer _double  _float  _boolean string  byte  long short  int  integer double  float  boolean date  decimal  bigdecimal

 映射的类型 byte  long short  int  int double  float  boolean String  Byte  Long Short  Integer  Integer Double  Float  Boolean Date

 BigDecimal  BigDecimal

(3)typeHandlers(类型处理器)

 

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

 通常情况下,mybatis提供的类型处理器满足日常需要,不需要自定义.

 mybatis支持类型处理器:

 类型处理器

BooleanTypeHandler ByteTypeHandler ShortTypeHandler IntegerTypeHandler LongTypeHandler FloatTypeHandler DoubleTypeHandler BigDecimalTypeHandler StringTypeHandler ClobTypeHandler NStringTypeHandler NClobTypeHandler ByteArrayTypeHandler  BlobTypeHandler  DateTypeHandler  DateOnlyTypeHandler TimeOnlyTypeHandler

 Java类型 Boolean,boolean  Byte,byte  Short,short  Integer,int  Long,long  Float,float  Double,double  BigDecimal String  String  String String  byte[]  byte[]

 Date(java.util) Date(java.util)Date(java.util)

 JDBC类型

 任何兼容的布尔值

任何兼容的数字或字节类型 任何兼容的数字或短整型 任何兼容的数字和整型 任何兼容的数字或长整型任何兼容的数字或单精度浮点型

 

CHAR和VARCHAR类型 CLOB和LONGVARCHAR类型

NVARCHAR和NCHAR类型 NCLOB类型

 任何兼容的字节流类型 BLOB和

 LONGVARBINARY类型TIMESTAMP类型 DATE类型 TIME类型

SqlTimestampTypeHandler  SqlDateTypeHandler  SqlTimeTypeHandler  ObjectTypeHandler  EnumTypeHandler  Timestamp(java.sql) Date(java.sql) Time(java.sql) 任意 

Enumeration类型

TIMESTAMP类型 DATE类型 TIME类型

其他或未指定类型

 VARCHAR-任何兼容的字符串类型,作为代码存储(而不是索引)。

 

 (4)mappers(映射配置)

 

(SqlMapConfig.xml)

 

<?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>
    <!--加载属性文件-->
    <properties resource="db.properties">
        <!--properties中还可以配置一些属性名和属性值:-->
        <!--property首先会被读取-->
        <!--然后resource属性或是url(绝对路径)再被读取-->
        <!--最后读取parameterType传递的值,他会覆盖已读取的同名属性-->
        <!--建议:不要在properties元素体内添加任何属性值,只将属性定义在properties文件中-->
        <!--在properties文件中定义属性名要有一定的特殊性,如:xxx.xxx-->
        <!--<property name="jdbc.driver" value=""></property>-->
    </properties>
    <!--全局配置参数 :二级缓存,延迟加载-->
    <!--<settings>-->
        <!--<setting name="" value=""/>-->
    <!--</settings>-->
    <!--别名-->
    <typeAliases>
        <!--针对单个别名-->
        <!--type:类型的路径-->
        <!--alias:别名-->
        <!--<typeAlias type="com.mybatis.po.User" alias="user"></typeAlias>-->
        <!--批量别名定义-->
        <!--mybatis会自动扫描包中的po类,自动定义别名,别名就是类名(首字母是大写或是小写都可以)-->
        <package name="com.mybatis.po"></package>

    </typeAliases>
    <!--配置mybatis的运行环境,数据源,事务等-->
    <!-- 和Spring整合后environments配置将废除 -->
    <environments default="development">
        <environment id="development">
            <!-- 使用JDBC事务管理,事务控制由mybatis管理 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 数据库连接池,由mybatis管理 -->
            <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="${db.password}" />-->
            </dataSource>
        </environment>
    </environments>
    <!--加载映射文件-->
    <mappers>
        <!--<mapper resource="sqlmap/User.xml"/>-->
        <!--通过resource一次加载一个映射文件-->
        <!--<mapper resource="mapper/UserMapper.xml"/>-->
        <!--通过mapper接口加载映射一个文件-->
        <!--遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录中-->
        <!--上边规范的前提是:使用的是mapper代理方法-->
        <!--<mapper class="com.mybatis.mapper.UserMapper"/>-->
        <!--批量加载mapper-->
        <!--指定mapper接口的包名,mybatis自动扫描包下边所有mapper接口进行加载-->
        <!--遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致,且在一个目录中-->
        <!--上边规范的前提是:使用的是mapper代理方法-->
        <package name="com.mybatis.mapper"/>
    </mappers>
</configuration>

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值