MyBatis-02-笔记

Posted 寻7

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis-02-笔记相关的知识,希望对你有一定的参考价值。

MyBatis 核心配置文件

1 核心配置文件介绍

  • 核心配置文件包含了 MyBatis 最核心的设置和属性信息。如数据库的连接、事务、连接池信息等。

  • 如下所示MyBatisConfig.xml(文件名称可自定义 但是尽量要见名知意):

    <?xml version="1.0" encoding="UTF-8" ?>
    <!--MyBatis的DTD约束-->
    <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
    
    <!--configuration 核心根标签-->
    <configuration>
    
        <!--environments配置数据库环境,环境可以有多个。default属性指定使用的是哪个-->
        <environments default="mysql">
            <!--environment配置数据库环境  id属性唯一标识-->
            <environment id="mysql">
                <!-- transactionManager事务管理。  type属性,采用JDBC默认的事务-->
                <transactionManager type="JDBC"></transactionManager>
                <!-- dataSource数据源信息   type属性 POOLED代表连接池-->
                <dataSource type="POOLED">
                    <!-- property获取数据库连接的配置信息 -->
                    <property name="driver" value="com.mysql.jdbc.Driver" />
                    <property name="url" value="jdbc:mysql:///db1" />
                    <property name="username" value="root" />
                    <property name="password" value="root" />
                </dataSource>
            </environment>
        </environments>
    
        <!-- mappers引入映射配置文件 -->
        <mappers>
            <!-- mapper 引入指定的映射配置文件   resource属性指定映射配置文件的名称 -->
            <mapper resource="StudentMapper.xml"/>
        </mappers>
    </configuration>
    

2 数据库连接配置文件引入

  • 在上面的核心配置文件中,是将数据库的连接信息写“死”了,根据开发规范,要求数据库的连接配置信息需要单独抽取到一个文件中。抽取出数据库配置信息后,在核心配置文件中可以引入使用。

  • 数据库连接配置信息文件 jdbc.properties

    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://192.168.59.143:3306/db1
    username=root
    password=123
    
  • 在核心配置文件中使用properties标签引入外部文件

    <properties>:引入数据库连接配置文件标签
    
    • 属性
      resource:数据库连接配置文件路径
    • 获取数据库连接参数
      ${键名}
  • 具体使用,如下MyBatis核心配置文件MyBatisConfig.xml配置

    <?xml version="1.0" encoding="UTF-8" ?>
    <!--MyBatis的DTD约束-->
    <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
    
    <!--configuration 核心根标签-->
    <configuration>
    
        <!--引入数据库连接的配置文件-->
        <properties resource="jdbc.properties"/>
    
        <!--environments配置数据库环境,环境可以有多个。default属性指定使用的是哪个-->
        <environments default="mysql">
            <!--environment配置数据库环境  id属性唯一标识-->
            <environment id="mysql">
                <!-- transactionManager事务管理。  type属性,采用JDBC默认的事务-->
                <transactionManager type="JDBC"></transactionManager>
                <!-- dataSource数据源信息   type属性 连接池-->
                <dataSource type="POOLED">
                    <!-- property获取数据库连接的配置信息 -->
                    <property name="driver" value="${driver}" />
                    <property name="url" value="${url}" />
                    <property name="username" value="${username}" />
                    <property name="password" value="${password}" />
                </dataSource>
            </environment>
        </environments>
    
        <!-- mappers引入映射配置文件 -->
        <mappers>
            <!-- mapper 引入指定的映射配置文件   resource属性指定映射配置文件的名称 -->
            <mapper resource="StudentMapper.xml"/>
        </mappers>
    </configuration>
    

3 起别名

  • 注意起别名是在核心配置文件中定义,而定义后的别名实在映射配置文件中使用

    <typeAliases>:为全类名起别名的父标签。
    
    <typeAlias>:为全类名起别名的子标签。
    
  • 属性

    type:指定全类名

    alias:指定别名

    <package>:为指定包下所有类起别名的子标签。(别名就是类名)
    
  • 如下图所示的是自带的别名是可以直接使用别名:

  • 具体如下配置

        <!--起别名--> 
        <typeAliases>
            <typeAlias type="com.itheima.bean.Student" alias="student"/>
            <!--<package name="com.itheima.bean"/>      
            此处使用<package>标签就表明bean目录下定义的所有类 的别名都成了对应的类名
            com.itheima.bean.Student的别名是student
            com.itheima.bean.Teacher的别名是teacher
            ...
      	-->
        </typeAliase>
    
  • 别名的案例演示

    • 核心配置文件

      <?xml version="1.0" encoding="UTF-8" ?>
      <!--MyBatis的DTD约束-->
      <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
      
      <!--configuration 核心根标签-->
      <configuration>
      
          <!--引入数据库连接的配置文件-->
          <properties resource="jdbc.properties"/>
      
          <!--起别名-->
          <typeAliases>
              <typeAlias type="com.itheima.bean.Student" alias="student"/>
              <!--<package name="com.itheima.bean"/>-->
          </typeAliases>
      
          <!--environments配置数据库环境,环境可以有多个。default属性指定使用的是哪个-->
          <environments default="mysql">
              <!--environment配置数据库环境  id属性唯一标识-->
              <environment id="mysql">
                  <!-- transactionManager事务管理。  type属性,采用JDBC默认的事务-->
                  <transactionManager type="JDBC"></transactionManager>
                  <!-- dataSource数据源信息   type属性 连接池-->
                  <dataSource type="POOLED">
                      <!-- property获取数据库连接的配置信息 -->
                      <property name="driver" value="${driver}" />
                      <property name="url" value="${url}" />
                      <property name="username" value="${username}" />
                      <property name="password" value="${password}" />
                  </dataSource>
              </environment>
          </environments>
      
          <!-- mappers引入映射配置文件 -->
          <mappers>
              <!-- mapper 引入指定的映射配置文件   resource属性指定映射配置文件的名称 -->
              <mapper resource="StudentMapper.xml"/>
          </mappers>
      </configuration>
      
    • 映射配置文件

      <?xml version="1.0" encoding="UTF-8" ?>
      <!--MyBatis的DTD约束-->
      <!DOCTYPE mapper
              PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
              "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
      
      <!--
          mapper:核心根标签
          namespace属性:名称空间
      -->
      <mapper namespace="StudentMapper">
          <!--
              select:查询功能的标签
              id属性:唯一标识
              resultType属性:指定结果映射对象类型
              parameterType属性:指定参数映射对象类型
          -->
          <select id="selectAll" resultType="student">
              SELECT * FROM student
          </select>
          <select id="selectById" resultType="student" parameterType="int">
              SELECT * FROM student WHERE id = #{id}
          </select>
      </mapper>    
      

4 核心配置文件小结

以上是关于MyBatis-02-笔记的主要内容,如果未能解决你的问题,请参考以下文章

狂胜说Mybatis笔记

学习笔记:python3,代码片段(2017)

[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段

sh bash片段 - 这些片段大多只是我自己的笔记;我找到了一些,有些我已经找到了

MyBatis—02—代替Dao层的mapper映射文件;MyBatis配置文件详解

需要一种有效的方法来避免使用 Laravel 5 重复代码片段