• MyBatis学习总结(三)——MyBatis配置文件配置的优化


    一、连接数据库的配置单独放在一个properties文件中

      上文 连接数据库的配置写在 mybatisConf.xml中,本文直接放在 db.properties 中, 在mybatisConf.xml 中引用

    mybatisConf.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>
        <!-- 引用db.properties配置文件 -->
        <properties resource="db.properties" />
    
        <environments default="development">
            <environment id="development">
                <transactionManager type="JDBC" />
                <!-- 配置数据库连接信息 -->
                <dataSource type="POOLED">
                    <!-- value属性值引用db.properties配置文件中配置的值 -->
                    <property name="driver" value="${driver}"/>
                    <property name="url" value="${url}"/>
                    <property name="username" value="${username}"/>
                    <property name="password" value="${password}"/>
                </dataSource>
            </environment>
        </environments>
        
        <mappers>
          <!-- 
            注册userMapper.xml文件, 
             userMapper.xml位于me.gacl.mapping这个包下,所以resource写成me/gacl/mapping/userMapper.xml
            -->
            <mapper resource="com/myl/mapping/userMapper.xml"/>
            
            <!-- 注册UserMapper映射接口-->
            <mapper class="com.myl.mapping.UserMapperInter" />
        </mappers>
        
    </configuration>

     在db.properties文件编写连接数据库需要使用到的数据库驱动,连接URL地址,用户名,密码

    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://127.0.0.1:3306/mybatis
    username=root
    password=

    二、为实体类定义别名,简化sql映射xml文件中的引用

    之前,我们在sql映射xml文件中的引用实体类时,需要写上实体类的全类名(包名+类名)

    userMapper.xml

    <!-- 修改数据 -->
        <update id="updateUser" parameterType="com.myl.entity.User">
            update user set name=#{name},age=#{age},job=#{job},deptno=#{deptno},hdate=#{hdate} where id=#{id}
        </update>

    parameterType="me.myl.entity.User"这里写的实体类User的全类名me.myl.entity.User,每次都写这么一长串内容挺麻烦的,而我们希望能够简写成下面的形式

    <!-- 修改数据 -->
        <update id="updateUser" parameterType="_User">
            update user set name=#{name},age=#{age},job=#{job},deptno=#{deptno},hdate=#{hdate} where id=#{id}
        </update>

      parameterType="_User"这样写就简单多了,为了达到这种效果,我们需要在conf.xml文件中为实体类="me.myl.entity.User"定义一个别名为"_User",具体做法如下:

    在mybatisConf.xml文件中<configuration></configuration>标签中添加如下配置:

    <!-- 为实体类="me.myl.entity.User"定义一个别名为"_User" -->
        <typeAliases>
            <typeAlias type="com.myl.entity.User" alias="_User"/>
        </typeAliases>

    除了可以使用<typeAlias type="me.myl.entity.User" alias="_User"/>这种方式单独为某一个实体类设置别名之外,我们还可以使用如下的方式批量为某个包下的所有实体类设置别名,如下:

    mybatis添加修改为

    <typeAliases>
            <!-- 为实体类="me.myl.entity.User"定义一个别名为"_User" -->
            <!-- <typeAlias type="com.myl.entity.User" alias="_User"/> -->
            
            <!-- 为me.gacl.domain包下的所有实体类配置别名,MyBatis默认的设置别名的方式就是去除类所在的包后的简单的类名
                比如me.gacl.domain.User这个实体类的别名就会被设置成User
             -->
          <package name="com.myl.entity" />
    </typeAliases>

      <package name="me.myl.entity"/>就表示为这个包下面的所有实体类设置别名。MyBatis默认的设置别名的方式就是去除类所在的包后的简单的类名,比如me.myl.entity.User这个实体类的别名就会被设置成User。

    userMapper.xml则可修改为:

    <!-- 修改数据 -->
        <update id="updateUser" parameterType="User">
            update user set name=#{name},age=#{age},job=#{job},deptno=#{deptno},hdate=#{hdate} where id=#{id}
        </update>
  • 相关阅读:
    SEO简介
    30个最常用css选择器解析(转自大范甘迪)
    H5新增语义化标签footer
    H5新增语义化标签article
    H5新增语义化标签aside
    H5新增语义化标签figure
    H5新增语义化标签nav
    node 文本替换
    一键生成专题
    node命令行工具—cf-cli
  • 原文地址:https://www.cnblogs.com/maoyali/p/8914936.html
Copyright © 2020-2023  润新知