zoukankan      html  css  js  c++  java
  • Mybatis框架学习_4_属性文件、全局参数、别名

    1.引入

    前面讲到的无论是配置文件形式亦或是动态代理方式,都已经可以基本实现数据库的 CRUD 功能,但是项目中还有许多地方可以进行优化,本章节就来详细讲解此类功能;

    2.具体内容

    2.1 优化 mybatis-config 配置文件中的内容

    原配置文件内容如下:

    <?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>
        <environments default="prod"><!--与 id 值保持一致-->
            <environment id="prod"><!--与 defaule 值保持一致-->
                <transactionManager type="JDBC"/><!--数据库事务的处理方式,默认为 JDBC-->
                <dataSource type="POOLED"><!--数据库连接池类型保持默认值 POOLED-->
                    <!--配置数据库信息-->
                    <property name="driver" value="com.mysql.cj.jdbc.Driver"/><!--数据库驱动方式,需要导入 JDBC驱动的 jar 包-->
                    <property name="url" value="jdbc:mysql://localhost:3306/db?serverTimezone=UTC"/><!--数据库 URL 地址-->
                    <!--<property name="url" value="jdbc:mysql://localhost:3306/db"/>&lt;!&ndash;数据库 URL 地址&ndash;&gt;-->
                    <property name="username" value="root"/><!--数据库用户名-->
                    <property name="password" value="root"/><!--数据库密码-->
                </dataSource>
            </environment>
        </environments>
        <mappers>
            <!--加载映射文件,为对应的mapper.xml 文件所在的路径,中间用 / 间隔-->
            <mapper resource="com/mapper/employeeMapper.xml"/>
        </mappers>
    </configuration>

    基于上述配置文件,我们先进行第一个优化,将【配置数据库信息】进行抽离,具体步骤如下:

    • 新建 db.properties 文件,在里面配置数据库连接相关信息;
    driver=com.mysql.cj.jdbc.Driver
    url=jdbc:mysql://localhost:3306/db?serverTimezone=UTC
    username=root
    password=root
    • 在 mybatis-config.xml 文件中引入 db.properties 属性文件,即增加配置:
        <properties resource="db.properties"></properties>
    • 配置数据库信息,将 driver、url、username、password等属性信息进行引用配置,引用方式为 ${},改造后的 mybatis-config.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>
        <environments default="prod"><!--与 id 值保持一致-->
            <environment id="prod"><!--与 defaule 值保持一致-->
                <transactionManager type="JDBC"/><!--数据库事务的处理方式,默认为 JDBC-->
                <dataSource type="POOLED"><!--数据库连接池类型保持默认值 POOLED-->
                    <!--配置数据库信息-->
                    <property name="driver" value="${driver}"/><!--数据库驱动方式,需要导入 JDBC驱动的 jar 包-->
                    <property name="url" value="${url}"/><!--数据库 URL 地址-->
                    <!--<property name="url" value="jdbc:mysql://localhost:3306/db"/>&lt;!&ndash;数据库 URL 地址&ndash;&gt;-->
                    <property name="username" value="${username}"/><!--数据库用户名-->
                    <property name="password" value="${password}"/><!--数据库密码-->
                </dataSource>
            </environment>
        </environments>
        <mappers>
            <!--加载映射文件,为对应的mapper.xml 文件所在的路径,中间用 / 间隔-->
            <mapper resource="com/mapper/employeeMapper.xml"/>
        </mappers>
    </configuration>

     2.2 全局配置参数的配置(一般不要改,了解有这么回事,知道在哪里添加即可)

    mybatis-config.xml 文件中可以配置全局参数,配置样例如下:

     2.3 设置别名

    2.3.1 设置单个别名

    • 设置位置:设置别名在 mybatis-config.xml 文件中的 configuration 标签下。
    • 演示案例:为具有全路径名的职员类设置别名,配置如下:表示将 com.entity.Employee 起别名为 Employee,此时在 mapper.xml 文件中即可按照 Employee 进行引用;
       <!--设置单个别名,设置别名后不区分大小写-->
        <typeAliases>
            <typeAlias type="com.entity.Employee" alias="Employee"></typeAlias>
        </typeAliases>
    • 注意问题:在 mybatis-config.xml 文件下设置属性信息时,是有顺序限制的,必须遵循如下约定:

        properties>settings>typeAliases>typeHandlers>objectFactory>objectWrapperFactory>reflectorFactory>plugins>environments>databaseIdProvider>mappers

     

     2.3.2 批量设置别名

    • 设置位置:设置别名在 mybatis-config.xml 文件中的 configuration 标签下。
    • 设置方法:增加如下配置:
        <typeAliases>
            <!--批量是设置别名-->
            <package name="com.entity"></package>
        </typeAliases>

      该配置表示,会将隶属于 com.entity 下的所有类都设置为别名的形式,别名就是其类名称本身;

     2.3.3 mybatis 自身内置别名

     mybatis 除了可以自定义别名外,自身还提供了一些内置别名,具体如下表所示:

     

     

     

     

     

  • 相关阅读:
    sublime 标题乱码,内容正常
    解决PHP7+ngnix+yaf框架404的问题
    调用RPC接口出现错误:Yar_Client_Transport_Exception (16) curl exec failed 'Timeout was reached'
    xhprof安装和使用
    单点登录
    如何让局域网内Apache互相访问
    lnmp
    virtualbox
    微信省市区 Mysql数据库
    lnmp
  • 原文地址:https://www.cnblogs.com/haibaowang/p/11864555.html
Copyright © 2011-2022 走看看