zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    Xshell 连接Linux服务器自动中断问题
    JavaScript验证输入的字符是否包含表情
    jQuery实现单击某个标签改变样式
    ELK之五----logstash收集haproxy日志
    ELK之四-----logstash收集nginx日志及tcp日志
    ELK之三-----JAVA日志多行合并、tomcat json日志收集与处理
    文本三剑客之二---Sed用法
    ELK之二----kibana部署及logstash单(多)日志收集
    ELK之一-----Elasticsearch介绍与部署
    Jenkins之五-----基于脚本实现代码部署与回滚
  • 原文地址:https://www.cnblogs.com/maoyali/p/8914936.html
Copyright © 2011-2022 走看看