zoukankan      html  css  js  c++  java
  • MyBatis05_主配置文件深入

    本教程源码请访问:tutorial_demo
    前面我们学习了持久层接口映射文件的配置,接下来我们学习一下主配置文件SqlMapConfig.xml的配置

    一、properties

    在使用properties标签时,我们可以采用两种方式指定属性配置。

    1.1、基本使用

    <?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">
    <!-- mybatis的主配置文件 -->
    <configuration>
        <properties>
        	<!--
                name:属性名
                value:属性值
        	-->
            <property name="jdbc.driver" value="com.mysql.jdbc.Driver"/>
            <property name="jdbc.url" 
        	          value="jdbc:mysql://localhost:3306/mybatisdb?characterEncoding=utf8"/>
            <property name="jdbc.username" value="root"/>
            <property name="jdbc.password" value="123456"/>
        </properties>
        <!-- 配置环境 -->
        <environments default="mysql">
            <!-- 配置mysql的环境 -->
            <environment id="mysql">
                <!-- 配置事务的类型 -->
                <transactionManager type="JDBC"></transactionManager>
                <!-- 配置数据源连接池-->
                <dataSource type="POOLED">
                    <!--
                        配置连接数据库的4个基本信息
        		    通过${属性名}的方式获取属性值
        	        -->
                    <property name="driver" value="${jdbc.driver}"/>
                    <property name="url" value="${jdbc.url}"/>
                    <property name="username" value="${jdbc.username}"/>
                    <property name="password" value="${jdbc.password}"/>
                </dataSource>
            </environment>
        </environments>
    
        <!-- 指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件 -->
        <mappers>
            <mapper resource="org/codeaction/dao/IUserDao.xml"/>
        </mappers>
    </configuration>
    

    1.2、引入外部配置文件

    1.2.1、在resource下定义db.properties文件

    jdbc.driver=com.mysql.jdbc.Driver
    jdbc.url=jdbc:mysql://localhost:3306/mybatisdb?characterEncoding=utf8
    jdbc.username=root
    jdbc.password=123456
    

    1.2.2、properties标签配置

    <?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">
    <!-- mybatis的主配置文件 -->
    <configuration>
        <!--
            resource属性:用于指定properties配置文件的位置,要求配置文件必须在类路径下
        -->
        <properties resource="jdbcConfig.properties"></properties>
        <!-- 配置环境 -->
        <environments default="mysql">
            <!-- 配置mysql的环境 -->
            <environment id="mysql">
                <!-- 配置事务的类型 -->
                <transactionManager type="JDBC"></transactionManager>
                <!-- 配置数据源连接池-->
                <dataSource type="POOLED">
                    <!-- 配置连接数据库的4个基本信息 -->
                    <property name="driver" value="${jdbc.driver}"/>
                    <property name="url" value="${jdbc.url}"/>
                    <property name="username" value="${jdbc.username}"/>
                    <property name="password" value="${jdbc.password}"/>
                </dataSource>
            </environment>
        </environments>
    
        <!-- 指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件 -->
        <mappers>
            <mapper resource="org/codeaction/dao/IUserDao.xml"/>
        </mappers>
    </configuration>
    

    二、typeAliases

    在上一篇文章中讲了MyBatis支持默认别名,我们也可以设置自定义别名。

    可以设置单个类型的别名,也可以根据包批量设置别名。

    定义别名之后,可以在上一篇中讲到的parameterType和resultType中使用别名。

    配置如下:

    <?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">
    <!-- mybatis的主配置文件 -->
    <configuration>
        <properties resource="jdbcConfig.properties"></properties>
        <typeAliases>
            <!-- 定义单个别名 -->
            <typeAlias alias="user" type="org.codeaction.domain.User" />
            <!-- 批量定义别名 -->
            <package name="org.codeaction.domain" />
        </typeAliases>
        <!-- 配置环境 -->
        <environments default="mysql">
            <!-- 配置mysql的环境 -->
            <environment id="mysql">
                <!-- 配置事务的类型 -->
                <transactionManager type="JDBC"></transactionManager>
                <!-- 配置数据源连接池-->
                <dataSource type="POOLED">
                    <!-- 配置连接数据库的4个基本信息 -->
                    <property name="driver" value="${jdbc.driver}"/>
                    <property name="url" value="${jdbc.url}"/>
                    <property name="username" value="${jdbc.username}"/>
                    <property name="password" value="${jdbc.password}"/>
                </dataSource>
            </environment>
        </environments>
    
        <!-- 指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件 -->
        <mappers>
            <mapper resource="org/codeaction/dao/IUserDao.xml"/>
        </mappers>
    </configuration>
    

    三、mappers

    mappers用来配置持久层接口映射文件的位置。

    3.1、方式1

    <mappers>
        <!-- 使用相对于resource路径的位置 -->
        <mapper resource="org/codeaction/dao/IUSerDao.xml" />
    </mappers>
    

    3.2、方式2

    <mappers>
        <!-- mapper接口路径
              此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中
        -->
        <mapper class="org.codeaction.dao.IUserDao" />
    </mappers>
    

    3.3、方式3

    <mappers>
        <!--注册指定包下的所有mapper接口
              此种方法要求mapper接口名称和mapper映射文件名称相同,且放在同一个目录中
        -->
        <package name="org.codeaction.dao"/>
    </mappers>
    
  • 相关阅读:
    自定义服务与调用--------factory
    如果没有开启keepalive 默认发送等超时
    你知道数据中台,但你肯定没听过报表中台,我靠它征服百万数据人
    数据库规范化:模式分解算法(3NF,BCNF分解,附带口诀,通俗易懂)
    直播丨 SQL大赛冠军怀晓明:深入解析Oracle存储过程中的性能瓶颈
    数据库服务器主机重启故障诊断分析
    不看可惜!无需代码,小白都会的可视化大屏,领导不重用你都难
    Docker 安装 ActiveMQ 修改账号密码
    使用Hexo 搭建你的技术博客
    【LeetCode】235.二叉搜索树的最近公共祖先(递归+迭代,详细图解,java实现)
  • 原文地址:https://www.cnblogs.com/codeaction/p/12902902.html
Copyright © 2011-2022 走看看