MYBATIS教程 – 配置

本章讨论MyBatis的配置,MyBatis使用xml文件进行配置。配置的内容一般会包括数据库、映射文件路径等。

MyBatis配置文件的典型结构如下:

<configuration>

   <typeAliases>
      <typeAlias alias = "类名" type = "类的全限定名"/>
   </typeAliases>

   <environments default = "环境默认名称">
      <environment id = "环境ID">
         <transactionManager type = "JDBC/MANAGED"/>  

            <dataSource type = "UNPOOLED/POOLED/JNDI">
               <property name = "driver" value = "数据库驱动程序名"/>
               <property name = "url" value = "数据库网址/url"/>
               <property name = "username" value = "数据库用户名"/>
               <property name = "password" value = "数据库密码"/>
            </dataSource>        

      </environment>
   </environments>

   <mappers>
      <mapper resource = "映射文件路径"/>
   </mappers>

</configuration>

下面让我们逐个讨论重要标签。

除了这些重要标签,还有其他标签可用,可参考MyBatis官方文档。

environments 标签

environments 标签即环境标签,用于配置数据库,可配置多个环境连接多个数据库。environments 标签有2个子标签:

  • transactionManager 标签
  • dataSource 标签

transactionManager 标签

transactionManager 标签即事务管理器标签,支持2类事务管理器:JDBC和MANAGED/托管。

  • JDBC – 使用JDBC类型的事务管理器,由应用程序负责事务管理操作,如提交、回滚等,利用java.sql.Connection对象完成对事务的管理
  • MANAGED/托管 – 使用托管类型的事务管理器,由Java容器(tomcat, jetty)负责管理连接生命周期,应用程序本身不管理事务

dataSource 标签

dataSource 标签即数据源标签,用于配置数据库的连接参数:数据库的驱动程序名、url、用户名和密码。

数据源标签有3中类型

  • UNPOOLED – 不使用连接池,单个连接用完就关闭,不复用,性能较差,通常用于简单的应用
  • POOLED – 使用连接池,数据库连接会被复用以提升性能
  • JNDI – MyBatis将从JNDI数据源获取数据库连接

环境标签示例:

<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/qikegu_mybatis"/>
         <property name = "username" value = "root"/>
         <property name = "password" value = "password"/>
      </dataSource>            
   </environment>
</environments>

typeAliases 标签

如需在MyBatis映射文件中使用短的类名(如com.qikegu.demo.User的中User),可配置类型别名标签。

<typeAliases>
   <typeAlias alias = "User" type = "com.qikegu.demo.User"/>
</typeAliases>

配置好后,可在MyBatis映射文件中直接使用User

mappers 标签

MyBaits的映射文件包含了映射的SQL语句,使用MyBatis的主要工作就是在编写这些映射文件。mappers 标签用于配置映射文件的位置。

例如,映射文件名为User.xml,放在mapper目录下,可如下配置:

<mappers>
   <mapper resource = "mapper/User.xml"/>
</mappers>

mapper标签除了通过resource属性配置映射文件位置,还可通过其他方式配置:

  • resource – 指向XML文件的类路径。
  • url – 指向xml文件的完全限定路径。
  • class – 可以使用映射接口代替xml文件,指向映射接口的类路径。
  • name – 指向映射接口的包名。

本章示例使用resource属性。

MySQL数据库配置

MySQL数据库的配置参数(驱动程序名、url、用户名和密码),如下所示:

序号 属性 属性值
1 driver com.mysql.jdbc.Driver
2 url jdbc:mysql://localhost:3306/qikegu_mybatis (假设数据库名为”qikegu_mybatis” )
3 username root
4 password password

使用JDBC类型的事务管理器,所以必须在应用程序中手动执行事务操作,如提交、回滚等。

使用unpool类型的数据源,表示不使用连接池,建议在数据库操作完成后手动关闭连接。

MybatisConfig.xml

MyBatis配置文件的实际例子:MyBatisConfig.xml。

下面是MyBatisConfig.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>

   <environments default = "development">
      <environment id = "development">
         <transactionManager type = "JDBC"/> 

         <dataSource type = "UNPOOLED">
            <property name = "driver" value = "com.mysql.jdbc.Driver"/>
            <property name = "url" value = "jdbc:mysql://localhost:3306/qikegu_mybatis"/>
            <property name = "username" value = "root"/>
            <property name = "password" value = "password"/>
         </dataSource>   

      </environment>
   </environments>

   <mappers>
      <mapper resource = "mapper/UserMapper.xml"/>
   </mappers>

</configuration>

例子源码

mybatis-demo1



浙ICP备17015664号 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载