MyBatis研习录(05)——MyBatis配置


C语言自学完备手册(33篇)

Android多分辨率适配框架

JavaWeb核心技术系列教程

HTML5前端开发实战系列教程

MySQL数据库实操教程(35篇图文版)

推翻自己和过往——自定义View系列教程(10篇)

走出思维困境,踏上精进之路——Android开发进阶精华录

讲给Android程序员看的前端系列教程(40集免费视频教程+源码)


版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl

概述

在之前关于Mybatis的示例中我们采用mybatis-config.xml配置数据源和mapper.xml,在此,我们继续学习mybatis-config.xml常用的配置。

mybatis-config.xml中配置的内容及其顺序如下:

configuration
	properties
	settings
	typeAliases
	typeHandlers
	objectFactory
	plugins
	environments
	    environment
	        transactionManager
	        dataSource
	databaseIdProvider
	mappers

请注意:建议在开发过程按照该顺序及嵌套关系配置Mybatis。

properties

我们可将一些配置信息专门写在对应的配置文件中,然后在mybatis-config.xml中利用properties进行引用。比如,将数据库配置信息置于db.properties中:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mb?characterEncoding=utf-8
username=root
password=root

再在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>
    <properties resource="db.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="sqlmap/StudentMapper.xml" />
    </mappers>
</configuration>

在mybatis-config.xml使用占位符#{ }获取配置信息。

setting

可在mybatis-config.xml中利用setting配置Mybatis全局参数从而作用于MyBatis的行为,常见配置如下:

在这里插入图片描述

typeAliases

typeAliases可为Java类型设置一个短的名字从而减少类完全限定名的冗余。MyBatis已经为许多常见的Java类型内建了相应的类型别名,如下所示:
在这里插入图片描述
除此以外,我们还可用typeAliases指定别名,示例如下:

<typeAliases>
        <typeAlias type="cn.com.Student" alias="Student" />
</typeAliases>

typeHandlers

无论是MyBatis在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时,都会用typeHandlers类型处理器将获取的值以合适的方式进行转换。简单地说:MyBatis中通过typeHandlers完成JDBC类型和Java类型的转换。Mybatis默认为我们实现了许多TypeHandler, 当我们没有配置指定TypeHandler时,Mybatis会根据参数或者返回结果的不同为我们选择合适的TypeHandler进行数据转换处理。
在这里插入图片描述

objectFactory

MyBatis 每次创建结果对象的新实例时,它都会使用一个对象工厂(ObjectFactory)实例来完成。 默认的对象工厂需要做的仅仅是实例化目标类,要么通过默认构造方法,要么在参数映射存在的时候通过参数构造方法来实例化。 如果想覆盖对象工厂的默认行为,则可以通过创建自己的对象工厂来实现并利用objectFactory进行配置

plugins

plugins用于配置MyBatis插件。

environments

environments常见配置如下:

  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/mybatisDatabase"/>
        <property name="username" value="root"/>
        <property name="password" value="root"/>
      </dataSource>
    </environment>
  </environments>

environments用于管理所有的环境, 并可以default属性来指定指定默认的环境;在environments可配置多个environment。

在environment中transactionManager用于配置事务管理器,其属性type有如下两种常用取值:

  • JDBC:表示MyBatis采用与原生JDBC一致的方式管理事务
  • MANAGED:表示将事务管理交给其他容器进行, 例如Spring

在environment中dataSource用于配置数据源,其属性type有如下三种常用取值:

  • POOLED:表示采用连接池技术
  • UNPOOLED:表示不使用连接池技术,每次操作都会建立和关闭连接
  • JNDI:表示使用其它容器(例如Spring)提供数据源

这三者最常用的为POOLED。

databaseIdProvider

通过databaseIdProvider,可让MyBatis根据不同的数据库执行不同的SQL语句。

mappers

mappers用于配置SQL映射文件。在此,介绍mybatis-config.xml配置mapper的三种常用方式。

方式一

利用resource配置映射文件xxxMapper.xml

<mappers>
    <mapper resource="cn/com/pojo/UserMapper.xml"/>
</mappers>

方式二

利用class配置xxxMapper.java接口的路径

<mappers>
     <mapper class="cn.com.StudentMapper"/>
</mappers>

利用该方式配置mapper时请注意:
必须将xxxMapper.xml和xxxMaper.java置于同一个包下,且文件名必须一致仅后缀不相同。

方式三

利用package批量配置包下的所有mapper

<mappers>
    <package name="cn.com"/>
</mappers>

利用该方式配置mapper时请注意:
必须将xxxMapper.xml和xxxMaper.java置于同一个包下,且文件名必须一致仅后缀不相同。

发布了1019 篇原创文章 · 获赞 1913 · 访问量 233万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 精致技术 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览