mybatis主配置文件详解(Mybatis系列-3-主配置文件介绍)

今天的付出,一定会换来明天的幸福,接下来我们就来聊聊关于mybatis主配置文件详解?以下内容大家不妨参考一二希望能帮到您!

mybatis主配置文件详解(Mybatis系列-3-主配置文件介绍)

mybatis主配置文件详解

今天的付出,一定会换来明天的幸福。

Mybatis相关源码及文档:

Mybatis官方技术文档 http://mybatis.org/mybatis-3/zh/index.html Mybatis源码包下载:http://github.com/mybatis/mybatis-3/releases 所有代码及笔记gitee路径:http://gitee.com/simple-coding/all-demo-code.git

要想进行MyBatis开发,Mybatis运行环境是必不可少的,那就需要配置Mybatis的主配置文件,其配置如下:

configuration(配置)

  • properties(属性)

  • settings(设置)

  • typeAliases(类型别名)

  • typeHandlers(类型处理器)

  • objectFactory(对象工厂)

  • plugins(插件)

  • environments(环境配置)

  • environment(环境变量)

  • transactionManager(事务管理器)

  • dataSource(数据源)

  • databaseIdProvider(数据库厂商标识)

  • mappers(映射器)

    下面我们列举下最常用的配置。其他配置可以参考官网文档。

    1.属性(properties)

    properties属性我们常用来引入数据库的连接配置信息。

    <properties resource="jdbc.properties"/>

    2.设置(settings)

    设置(settings)是Mybatis运行环境的全局常量配置。如我们前面日志讲解部分,指定特定日志实现

    <setting name="logImpl" value="STDOUT_LOGGING"/>

    或者配置是否开启驼峰命名自动映射。

    <setting name="mapUnderscoreToCamelCase" value="true"/>

    3.类型别名(typeAliases)

    类型别名可为 Java 类型设置一个缩写名字。 它仅用于 XML 配置,意在降低冗余的全限定类名书写。比如mapper配置传参就可以使用定义好的别名。

    <typeAliases> <!---包中的所有类的简单类名指定为别名--> <package name="com.mybatis.abc.mybatis.bean"/> <!-- 对实体类逐一定义 <typeAlias type="com.mybatis.abc.mybatis.bean.Student" alias="Student"/> --> </typeAliases>

    4.environments(环境配置)
  • environments标签:defalult属性指定当前的运行环境。

    environment的id属性为当前定义的运行环境

    <!--使用id为myDeveloper的运行环境--> <environments default="myDeveloper"> <environment id="myDeveloper"> </environment> <environment id="myDeveloper1"> </environment> <environment id="myDeveloper2"> </environment> </environments>

  • transactionManager标签

    <!-- 配置数据库的事务 - type:指定事务的类型 JDBC:表示使用数据库连接的事务管理(rollback, commit), 默认情况下Mybatis的提交为手动提交; MANAGED:表示事务是由容器管理的(spring是容器,能够管理事务)。 --> <transactionManager type="JDBC" />

  • dataSource标签

    <!-- 配置数据源 - type:数据源的类型 POOLED:表示连接池 UNPOOLED:不使用连接池,每次的数据库的操作是新建连接,使用后关闭连接 JNDI:java 命名和目录服务。 表示外部的连接池。--> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3366/test"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource>

    注:如果引入了DB属性配置文件,此处value的值也可以写成${属性文件中的key值}

    5.mappers(映射器)第一种:<mapper resource="XXX"/>
  • 需要对实体类逐一映射

    <mappers> <mapper resource="com/mybatis/abc/mybatis/dao/studentMapper.xml"/> <mapper resource="com/mybatis/abc/mybatis/dao/studentMapper2.xml"/> </mappers>

    第二种:<mapper url="XXX"/>
    1. 从本地磁盘加载映射文件;

      需要对实体类逐一映射

    <mappers> <mapper url="file:///D:\studentMapper.xml"/> </mappers>

    第三种:<mapper class="XXX"/>

    使用规范:

    1. mapper位置:DAO接口与映射文件在同一路径下。

    2. mapper命名:接口名与映射文件名相同。

    3. mapper的命名空间:映射文件命名空间为接口全类名的情况.

    <mappers> <!--一个mapper对应一个配置,多个mapper需要逐一配置--> <mapper class="com.mybatis.abc.mybatis.dao.StudentDao"/> </mappers>

    例如mapper配置文件:StudentDao.xml中的namespace命名:

    <mapper namespace="com.mybatis.abc.mybatis.dao.StudentDao"> <insert id="saveStudent" > insert into student(sname,sno) values(#{sname},#{sno}) </insert> /mapper>

    第四种:<package name="XXX"/>

    name指定的是包名。使用规范如下

    1. mapper适用范围:可用于mapper的动态代理(后面单独讲)

    2. mapper位置:DAO接口与映射文件在同一路径下。

    3. mapper命名:接口名与映射文件名相同。

    4. mapper命名空间:映射文件命名空间(namespace)为接口全类名的情况.

    <mappers> <package name="com.mybatis.abc.mybatis.dao"/> </mappers>

    看了上边的mapper的配置,你是否会有疑问:在与spring或者springboot整合中,也没见到mapper.xml必须放在与Dao同名的包中啊?这是怎么回事呢?其实这是中间包整合封装的结果,不妨你去看一下mybatis-spring整合时是怎么加载配置文件的。

  • 免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

      分享
      投诉
      首页