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

前面我们是把数据库的连接信息放在了mybatis-config.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>
<!--配置数据库环境,可以有多个environment,default值是其中一个environment的id值-->
<environments default="developement">
<environment id="developement">
<!--配置事务管理器,JDBC和MANAGED两种,JDBC可以进行回滚和提交-->
<transactionManager type="JDBC"></transactionManager>
<!--配置数据源,type=[UNPOOLED | POOLED| JNDI], POOLED表示实现简单的数据池连接,连接可以复用-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=UTF-8"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
</dataSource>
</environment>
</environments>
<!--resource值是映射文件所在的路径-->
<!--class值是映射接口类所在的路径-->
<mappers>
<!--mapper resource="mapping/userMapper.xml"></mapper>-->
<mapper class="me.gacl.map.UserMapperI"></mapper>
</mappers>
</configuration>

其实我们完全可以将数据库的连接配置信息写在一个properties文件中,然后在conf.xml文件中引用properties文件,具体做法如下:

首先建一个db.properties文件,文件内容如下:

 driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=UTF-8
username=root
password=123456

然后在mybatis-config.xml中,引用db.properties配置文件中的属性,如下:

 <?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"></properties>
<!--配置数据库环境,可以有多个environment,default值是其中一个environment的id值-->
<environments default="developement">
<environment id="developement">
<!--配置事务管理器,JDBC和MANAGED两种,JDBC可以进行回滚和提交-->
<transactionManager type="JDBC"></transactionManager>
<!--配置数据源,type=[UNPOOLED | POOLED| JNDI], POOLED表示实现简单的数据池连接,连接可以复用-->
<dataSource type="POOLED">
<property name="driver" value="${driver}"></property>
<property name="url" value="${url}"></property>
<property name="username" value="${username}"></property>
<property name="password" value="${password}"></property>
</dataSource>
</environment>
</environments>
<!--resource值是映射文件所在的路径-->
<!--class值是映射接口类所在的路径-->
<mappers>
<!--mapper resource="mapping/userMapper.xml"></mapper>-->
<mapper class="me.gacl.map.UserMapperI"></mapper>
</mappers>
</configuration>

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

以前在sql中引用实体类时,需要写上实体类的全类名(包名+类名),如:

  <select id="getUser" parameterType="int" resultType="me.gacl.domain.User">
select * from users where id=#{id}
</select>

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

   <select id="getUser" parameterType="int" resultType="_User">
select * from users where id=#{id}
</select>

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

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

 <!--配置User类的别名-->
<typeAliases>
<typeAlias type="me.gacl.domain.User" alias="_User"></typeAlias>
</typeAliases>

  这样就可以为me.gacl.domain.User类定义了一个别名为_User,以后_User就代表了me.gacl.domain.User类,这样sql映射xml文件中的凡是需要引用me.gacl.domain.User类的地方都可以使用_User来代替,这就达到了一个简化实体类引用的目的。

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

     <!--配置User类的别名-->
<typeAliases>
<!--配置User类的别名为"_User"-->
<!--<typeAlias type="me.gacl.domain.User" alias="_User"></typeAlias>-->
<!--配置me.gacl.domain包下所有类的别名,默认是类名即"User"-->
<package name="me.gacl.domain"></package>
</typeAliases>

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

注意:typeAliases必须在environments和mappers标签之前,不然会报错

完整的mybatis-config.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"></properties>
<!--配置User类的别名-->
<typeAliases>
<!--配置User类的别名为"_User"-->
<typeAlias type="me.gacl.domain.User" alias="_User"></typeAlias>
<!--配置me.gacl.domain包下所有类的别名,默认是类名即"User"-->
<!--<package name="me.gacl.domain"></package>-->
</typeAliases>
<!--配置数据库环境,可以有多个environment,default值是其中一个environment的id值-->
<environments default="developement">
<environment id="developement">
<!--配置事务管理器,JDBC和MANAGED两种,JDBC可以进行回滚和提交-->
<transactionManager type="JDBC"></transactionManager>
<!--配置数据源,type=[UNPOOLED | POOLED| JNDI], POOLED表示实现简单的数据池连接,连接可以复用-->
<dataSource type="POOLED">
<property name="driver" value="${driver}"></property>
<property name="url" value="${url}"></property>
<property name="username" value="${username}"></property>
<property name="password" value="${password}"></property>
</dataSource>
</environment>
</environments>
<!--resource值是映射文件所在的路径-->
<!--class值是映射接口类所在的路径-->
<mappers>
<!--mapper resource="mapping/userMapper.xml"></mapper>-->
<mapper class="me.gacl.map.UserMapperI"></mapper>
</mappers>
</configuration>

mybatis学习(三)----优化Mybatis配置文件中的配置的更多相关文章

  1. 【转】MyBatis学习总结(三)——优化MyBatis配置文件中的配置

    [转]MyBatis学习总结(三)——优化MyBatis配置文件中的配置 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置信息写在了MyBatis的con ...

  2. Mybatis系列(二):优化MyBatis配置文件中的配置和解决字段名与实体类属性名不相同的冲突

    原文链接:http://www.cnblogs.com/xdp-gacl/p/4264301.html     http://www.cnblogs.com/xdp-gacl/p/4264425.ht ...

  3. 转:MyBatis学习总结(Mybatis总结精华文章)

    http://www.cnblogs.com/xdp-gacl/tag/MyBatis%E5%AD%A6%E4%B9%A0%E6%80%BB%E7%BB%93/ 当前标签: MyBatis学习总结   ...

  4. 【转】MyBatis学习总结(一)——MyBatis快速入门

    [转]MyBatis学习总结(一)——MyBatis快速入门 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC ...

  5. MyBatis学习总结(七)——Mybatis缓存(转载)

      孤傲苍狼 只为成功找方法,不为失败找借口! MyBatis学习总结(七)--Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的 ...

  6. 【转】MyBatis学习总结(七)——Mybatis缓存

    [转]MyBatis学习总结(七)——Mybatis缓存 一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 一级缓存: 基于PerpetualC ...

  7. 【MyBatis学习15】MyBatis的逆向工程生成代码

    1. 什么是逆向工程 mybatis的一个主要的特点就是需要程序员自己编写sql,那么如果表太多的话,难免会很麻烦,所以mybatis官方提供了一个逆向工程,可以针对单表自动生成mybatis执行所需 ...

  8. Prometheus 配置文件中 metric_relabel_configs 配置--转载

    Prometheus 配置文件中 metric_relabel_configs 配置 参考1:https://www.baidu.com/link?url=YfpBgnD1RoEthqXOL3Lgny ...

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

    一.优化Mybatis配置文件conf.xml中数据库的信息 1.添加properties的配置文件,存放数据库的信息:mysql.properties具体代码: driver=com.mysql.j ...

  10. MyBatis学习总结(三)——优化MyBatis配置文件中的配置(转载)

    本文转载自:http://www.cnblogs.com/jpf-java/p/6013548.html 一.连接数据库的配置单独放在一个properties文件中 之前,我们是直接将数据库的连接配置 ...

随机推荐

  1. Channel L 自然拼读法 Teacher:Lamb

    # 今日学习的 bl fl pl cl gl br cr gr pr fr    tr   dr   # 上课内容 was he    <--- h在中间出现的情况连读   was he 这里的 ...

  2. Passenger简介

    https://www.phusionpassenger.com/docs/tutorials/what_is_passenger/ What is Passenger? 一个开源的web程序服务.它 ...

  3. linux常见基本命令

    目录 1.更改文件基本属性 2.Linux文件与目录管理 3.Linux用户和用户组管理 4.磁盘管理 5.Linux vi/vim 6.linux查看防火墙状态及开启关闭命令 1.更改文件基本属性 ...

  4. 完整的Django入门指南学习笔记4

    前言 这一章节将会全面介绍 Django 的身份认证系统,我们将实现注册.登录.注销.密码重置和密码修改的整套流程. 同时你还会了解到如何保护某些试图以防未授权的用户访问,以及如何访问已登录用户的个人 ...

  5. 性能测试工具 Web Service 性能测试工具比较

    [转自]https://testerhome.com/topics/3003 背景 希望选择一款Web Service性能测试工具,能真实模拟大量用户访问网站时的请求,从而获取服务器当前的请求处理能力 ...

  6. Tree总结

    树结构问题因为容易写出解法,因此经常出现在面试题中 1. 树的种类 1) Tree 2) Binary Trees 3) Binary Search Trees(BST) : used to sort ...

  7. tmp目录自动清除和tmpwatch命令

    习惯性的将一些临时文件放在tmp目录下,让其自然删除.同时,为了保证tmp目录不爆满,系统默认情况下每日会处理一次tmp目录文件,原理就是使用了tmpwatch.在系统最小安装情况下,这个功能是没有安 ...

  8. centos7-jdk快速安装

    安装之前先检查一下系统有没有自带open-jdk 命令: rpm -qa |grep java rpm -qa |grep jdk rpm -qa |grep gcj 如果没有输入信息表示没有安装. ...

  9. html和jsp的区别及优缺点

    ♥ HTML(Hypertext Markup Language)文本标记语言,它是静态页面,和JavaScript一样解释性语言,为什么说是解释性语言呢?因为,只要你有一个浏览器那么它就可以正常显示 ...

  10. Oracle 数据库中查看表空间的2种方法

    在Oracle数据库中查看表空间使用状况是我们在实际应用中经常涉及到的,以下的内容就就是对Oracle 数据库中查看表空间使用状况时所要用到的SQL的描述,希望你能从中获得自己想要的东西. Oracl ...