1、本篇博客的背景和目的

我本人正在学习MyBatis框架,在原先了解并且懵懵懂懂使用的基础上,开始系统正式的学习。阐述了MVC架构模式和三层架构,回顾了JDBC连接数据库,建立了使用MyBatis和MySQL的Maven项目,解释了STDOUT_LOGGING日志和手动提交事务,记录了MyBatis中#占位符的使用方法,回顾了MyBatis执行SQL语句的过程和使用到的一些重要类和接口,记录了将固定化的代码整合到一个工具类MyBatisUtil中,以减少代码量。记录了dao层接口的实现以及为什么要实现它。记录了MyBatis动态代理和使用动态代理的要求以及使用了动态代理生成的实现类。记录了MyBatis框架下传参的五种方法,占位符#和$,如何自定义别名,resultType属性的使用方法,如何处理数据库中列名和JAVA对象属性名不一致的情况,如何组装传递模糊查询的条件(一共有两种方式),动态SQL中<if>标签,<where>标签,<sql>标签的使用。本篇博客记录一下数据库信息外部配置文件:yml(yaml或者properties)。

2、我的上一篇博文

我上一篇博文总结了MyBatis的配置文件,进一步详细的说明了一下,感兴趣的读者可以移步查阅,链接如下所示:

MyBatis学习:MyBatis的配置文件_你是我的日月星河的博客-CSDN博客icon-default.png?t=M85Bhttps://blog.csdn.net/weixin_46281472/article/details/127194979

3、为什么使用外部配置文件?

目前我们是将数据库的配置信息(用户名,密码,数据库名等)写在了MyBatis的总配置文件中。但是这样写起来有点麻烦,各种各样的信息都杂乱的写在一个文件中,不好!!

所以就有了数据库信息的外部配置文件。

多说一下:其实上面的理由有点牵强。这个外部配置文件后面在实际开发中,使用了很多的框架以后,各种需要的配置信息都会写在这里面的。可以说就是一个专门的配置文件,这今后也是一种规范。使用最多的还是yml为后缀名的文件。

4、.yml(.properties,.yaml)外部配置文件的使用方式

在这个配置文件中,我们使用  key=value 的格式来配置信息。

只不过,不一样的后缀名,展示的形式不一样而已,但是实际都是 key=value  这种格式。

例如:

        jdbc.driver=com.mysql.cj.jdbc.Driver

上面等号的左侧就是  key,右侧就是  value

使用步骤如下所示

1、在resources文件夹下创建  application.properties文件,一般都是这个文件名,这是规范。

2、配置文件中,使用  key=value 的格式来配置信息。

3、在MyBatis主配置文件中(还是离不开它!!),使用properties标签引用外部的属性配置文件。properties标签有两个属性,一个是resouce属性,这个属性的值是 resouces文件夹下的配置文件路径。还有一个url属性这个属性值是 在互联网上的某一个配置文件的地址!!

4、在使用值的位置,使用  ${key}  获取key对应的value。(这种引用方式今后在很多地方都会用到)。

多说一下:原先将数据库的配置信息写在主配置文件中的时候,在XML文件中要使用 & 的转义字符  &amp;  ,但是:在properties文件中,就不能使用转义字符了,使用了会报错的,必须使用原字符!!!

5、看一下代码

首先看一下位于resources文件夹下的  application.properties文件,代码如下所示:

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Hongkong&allowMultiQueries=true
jdbc.username=root
jdbc.password=123456

然后是 MyBatis的主配置文件看一下注释!!

<?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>
<!--    使用外部配置文件,需要在resources文件夹下,也就是编译后的类路径下,注意这个标签写在前面-->
    <properties resource="application.properties"></properties>
    <!--    下面设置一下日志,一定要在最上面, 其实我们可以按着Ctrl键,鼠标左击configuration标签,进去看它规定的标签顺序-->
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    </settings>
<!--    下面我们自己声明一些别名,这里有两种语法格式-->
    <typeAliases>
<!--        第一种语法格式  type:java类型的全限定名称,一般都是自定义java类型
                        alias:别名
                        这种方法就是比较麻烦。
                        -->
        <typeAlias type="com.dcy.domain.Student" alias="Student"></typeAlias>
<!--        第二种语法格式  name:包名  MyBatis会自动将这个包中的所有类名作为别名,并且不区分大小写 -->
        <package name="com.dcy.domain"/>
    </typeAliases>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <!--            下面是配置一下数据源,其实后面我们就不这样配置了,都在.yml文件中配置-->
            <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="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--   用于指定其它mapper.xml文件的位置,也就是路径
     这个路径是从target/classes根路径开始的,也即是com/**/**/这样的
     使用注意:使用 / 分隔路径;一个mapper标签指定一个文件;
     -->
    <mappers>
        <mapper resource="com/dcy/dao/StudentDao.xml"></mapper>
    </mappers>
</configuration>

6、本篇博文所用代码的gitee仓库地址链接

MyBatis20220829: 动态SQL有关的MyBatis代码https://gitee.com/MissShe/MyBatis20220829.git

7、我的下一篇博文

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐