• MyBatis的学习总结三:优化MyBatis配置文件中的配置


    一、优化Mybatis配置文件conf.xml中数据库的信息

                    

      1、添加properties的配置文件,存放数据库的信息:mysql.properties具体代码:

    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://172.32.231.206:3306/edihelper
    username=root
    password=joyplus_edi

      2、在conf.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="mysql.properties"/>
       
        <environments default="development">
            <environment id="development">
              <transactionManager type="JDBC"/>
              <dataSource type="POOLED">
                  <property name="driver" value="${driver}"/>
                  <property name="url" value="${url}"/>
                  <property name="username" value="${username}"/>
                  <property name="password" value="${password}"/>
              </dataSource>
            </environment>
        </environments>
        <mappers>
            <mapper resource="com/cn/mybatis/mapper/taskMapper.xml"/>
            <mapper class="com.cn.mybatis.mapper.ITaskMapper"/>
            <mapper resource="com/cn/mybatis/mapper/taskDetailMapper.xml"/>
        </mappers>
        
    </configuration>

    二、优化,SQL映射文件中resultType引入的实体类

      之前的引入:

    <select id="getAllTask" parameterType="String" resultType="com.cn.mybatis.model.EdiTestTask">
            select * from edi_test_task where task_id=#{taskId}
        </select>
    resultType="com.cn.mybatis.model.EdiTestTask" 每次引入要写这么长,很麻烦,如果可以写成  resultType="EdiTestTask" 就简单多了。要实现这样的效果,需要在conf.xml中为实体类添加别名:
    <typeAliases>
            <typeAlias type="com.cn.mybatis.model.EdiTestTask"/>
          
        </typeAliases>

    不过,这样配置只是为某一个类起了别名,其他类引入映射文件文件中还是很麻烦,为了使全部的实体类都可以简单引入,可以这样配置:

    <typeAliases>
           <package name="com.cn.mybatis.model"/>  <!--将存放实体类的包配置别名,该包下面所有实体类都配置了别名-->
        </typeAliases>

     三、表字段和实体类的变量不一致解决之法:

      解决办法一通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体类的属性名一致,这样就可以表的字段名和实体类的属性名一一对应上了,这种方式是通过在sql语句中定义别名来解决字段名和属性名的映射关系的。

      解决办法二通过<resultMap>来映射字段名和实体类属性名的一一对应关系。这种方式是使用MyBatis提供的解决方式来解决字段名和属性名的映射关系的。

  • 相关阅读:
    vue中Axios的封装和API接口的管理
    如何配置Webpack/Vue-CLI实现前端跨域(附跨域大全)
    前端面试几个重要知识点
    js常用函数
    JS中的枚举和不可枚举
    可配置性属性和不可配置性属性
    Object.create()和深拷贝
    JavaScript 中 call()、apply()、bind() 的用法
    从深入到通俗:Object.prototype.toString.call()
    js原生实现三级联动下拉菜单
  • 原文地址:https://www.cnblogs.com/renxiaoren/p/5242884.html
Copyright © 2020-2023  润新知