java框架---MyBatis全局配置文件

以下均放在configuration标签下

1.properties标签

可以使用properties标签引入外部properties配置文件的内容

两个属性:

resource:引入类路径下的资源

url:引入网络路径或者磁盘路径下的资源

<?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="dbconfig.properties"></properties>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}" />
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${jdbc.password}" />
            </dataSource>
        </environment>
    </environments>
    <!-- 一定要将写好的sql映射文件(EmployeeMapper.xml)注册到全局配置文件(mybatis-config.xml)中 -->
    <mappers>
        <!-- 如果映射文件在包下,则用"包名/文件名" -->
        <mapper resource="EmployeeMapper.xml" />
    </mappers>
</configuration>
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/books?serverTimezone=GMT%2B8
jdbc.username=root
jdbc.password=root

2.settings标签

运行时行为设置,其中包含了许多重要的设置项

    <settings>
        <!-- 将自动驼峰命名规则映射打开 -->
        <setting name="mapUnderscoreToCamelCase" value="true" />
    </settings> 

3.typeAliasese标签

别名处理器可以为java类型起别名

    <!-- 别名处理器,别名不区分大小写 -->
    <typeAliases>
        <!-- typeAlias:为某一个类起别名
                type:被起别名类的全类名\ 默认别名就是类名小写
                alias: 别名
        -->
        <!-- <typeAlias type="com.bird.mybatis.bean.Employee" alias="emp"/> -->

        <!-- package: 为某个包下所有的类其别名
                name: 指定包名(为当前包以及所有后代包的每一个类都起一个默认别名:类名小写
        -->
        <package name="com.bird.mybatis.bean"/>

        <!-- @alias:在批量起别名的情况下使用@Alias注解为某个类指定别名 -->
    </typeAliases>

注:1.最好少用起别名,全路径类名结构更清晰,而且可以快速切换到指定类中

  2.myBatis为java的一些常用类型已经起好了别名,注意不要重复

4.typeHandlers标签:

类型处理器,是数据库和java之间类型转换的桥梁,将数据库的类型与java的数据类型分别映射

5.plugins标签

插件,拦截4大对象:

执行器   Executor(update,query,flushStatements,commit,rollback,getTransaction)

参数处理器  ParameterHandler(getParameterObject,setParameterObject)

结果集处理器  ResultSetHandler(handleResultSets,handleOutputParameters)

sql语句处理器  StatementHandler(prepare,parameterize,batch,update,query)

6.environmenst标签

MyBatis可以配置多种环境,default属性指定使用某种环境,可以达到快速切换环境

每个environment标签配置一个具体的环境信息,id代表当前环境唯一标识,其中必须包含两个标签:

  transactionManager 事务管理器,其中type属性是事务管理器的类型:

           JDBC(JdbcTransactionFactory) | MANAGED(ManagedTransactionFactory) | 自定义事务管理器:实现TransactionFactory接口,type为全类名

  dataSource 数据源 type取值:UNPOOLED | POOLED | JNDI | 自定义数据源:实现DataSourceFactory接口,type值为全类名

    <environments default="development">
        <environment id="test">
            <transactionManager type="MANAGED"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}" />
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${jdbc.password}" />
            </dataSource>
        </environment>
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}" />
                <property name="url" value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${jdbc.password}" />
            </dataSource>
        </environment>
    </environments>

7.databaseIdProvider标签:

支持多i数据库厂商, type属性值为"DB_VENDOR" 作用是得到数据库厂商的标识(驱动),MyBatis就可以根据不同的厂商执行不同的sql

<!-- 数据库厂商支持 -->
    <databaseIdProvider type="DB_VENDOR">
        <!-- 为不同数据库厂商起别名 -->
        <property name="Mysql" value="mysql"/>
        <property name="Oracle" value="oracle"/>
        <property name="SQL Server" value="sqlserver"/>
    </databaseIdProvider>

在sql映射文件中可以使用databaseId属性来标明此sql语句是运行在哪个数据库下的

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- namespace:名称空间(若使用接口式编程,与EmployeeMapper接口全类名一致)
    id:唯一标识(与接口中的方法名对应)
    resultType:返回值类型(与对应方法的返回值对应)
    databaseId: 执行的sql语句的数据库厂商环境
    #{id}:从传递过来的参数中取出id值

 -->
<mapper namespace="com.bird.mybatis.dao.EmployeeMapper">
    <select id="getEmpById" resultType="emp">
        <!-- select id,last_name lastName,gender,email from tbl_employee where id = #{id} -->
        select * from tbl_employee where id = #{id}
    </select>
    <select id="getEmpById" resultType="emp" databaseId="mysql">
        <!-- select id,last_name lastName,gender,email from tbl_employee where id = #{id} -->
        select * from tbl_employee where id = #{id}
    </select>
    <select id="getEmpById" resultType="emp" databaseId="orcle">
         select id,last_name lastName,gender,email from tbl_employee where id = #{id}
    </select>
</mapper>

注:若一个环境下有多个不同的方法实现,则取范围最精确的,比如上面代码中在mysql环境下getEmpById有两个实现可用,使用第二个更精确的

8.mappers标签

注册sql映射文件:

将sql映射注册到全局配置中,mapper标签注册一个sql映射,其属性有:

resource: 引用类路径下的sql映射文件    <mapper resource="org/mybatis/builder/BlogMapper.xml"/>

url: 引用网路路径或者磁盘路径下的sql映射文件   <mapper url="file:///var/mappers/BlogMapper.xml"/>

注册接口:

  class:  注册(引用)接口    <mapper class="org.mybatis.builder.BlogMapper"/>

    方法1:有sql映射文件,映射文件名必须与接口同名,并且放在同一目录下

    方法2:没有sql映射文件,所有sql利用注解写在接口中

    注:重要的,复杂的Dao接口推荐使用sql映射文件,简单的,不重要的为了开发方便则使用注解

  package标签批量注册:

    和方法1是一样的,但是一次性注册一个包的接口

<!-- 一定要将写好的sql映射文件(EmployeeMapper.xml)注册到全局配置文件(mybatis-config.xml)中 -->
    <mappers>
        <!-- 如果映射文件在包下,则用"包名/文件名" -->
        <mapper resource="mybatis/mappers/EmployeeMapper.xml" />

        <!-- 注册接口 -->
        <mapper class="com.bird.mybatis.dao.EmployeeMapperAnnotation" />
    </mappers>

接口:

package com.bird.mybatis.dao;

import org.apache.ibatis.annotations.Select;

import com.bird.mybatis.bean.Employee;

public interface EmployeeMapperAnnotation {
    @Select("select * from tbl_employee where id = #{id}")
    public Employee getEmpById(Integer id);
}

配置标签的顺序是固定的,顺序不对编译会报错

原文地址:https://www.cnblogs.com/liujingche00/p/12287396.html

时间: 2024-11-06 07:12:13

java框架---MyBatis全局配置文件的相关文章

Mybatis学习(3)关于mybatis全局配置文件SqlMapConfig.xml

比如针对我这个项目的mybatis全局配置文件SqlMapConfig.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"> &l

mybatis全局配置文件的总结

mybatis全局配置文件SqlMapConfig.xml中的批量操作 typeAliases,可以批量的定义别名,然后在mapper.xml中的parameterType和resultType中使用 1.1 单个别名的定义 1.2 批量别名的定义 2.mapper加载映射配置 2.1 单个映射文件的配置 2.2 批量映射文件的加载(必须使用mapper代理的方式,满足自动代理的条件,并且mappere.java和mapper.xml的名称相同且在同一个目录下)

MyBatis全局配置文件mybatis-config.xml如何写

MyBatis全局配置文件mybatis-config.xml 1.在官方下载的mybatis-3.4.5.zip压缩包中,有我们需要的mybatis核心jar包和mybatis的快速入门的pdf文件 在mybatis的快速入门的pdf文件中,复制如下代码到我们项目中的mybatis-config.xml文件中 以上就是我们需要的简单的全局配置文件的格式 2.按住CRTL+鼠标左键点击全局配置文件的约束文件的链接: http://mybatis.org/dtd/mybatis-3-config.

Spring+SpringMVC+MyBatis深入学习及搭建(三)——MyBatis全局配置文件解析

转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6874672.html 前面有写到Spring+SpringMVC+MyBatis深入学习及搭建(二)——MyBatis原始Dao开发和mapper代理开发 MyBatis的全局配置文件SqlMapConfig.xml,配置内容和顺序如下: properties(属性) setting(全局配置参数) typeAliases(类名别名) typeHandlers(类名处理器) objectFactory(对

5.MyBatis 全局配置文件详解(sqlMapConfig.xml)

1.1     Mybatis的全局配置文件 SqlMapConfig.xml是mybatis的全局配置文件.它的名称可以是任意命名的. 1.1.1 配置内容 SqlMapConfig.xml的配置内容和顺序如下(顺序不能乱): Properties(属性) Settings(全局参数设置) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境信息集合) environment(

MyBatis全局配置文件

1.properties(这个标签基本上不太使用,了解) 1.mybatis可以使用properties来引入外部properties配置文件的内容     resource是引入类路径下的资源     url:引入网络网络路径或磁盘路径下的资源 新建一个file文件命名为dbconfig.properties,内容填充如下 jdbc.driver = com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis jdbc.

mybatis 全局配置文件的相关设置

1.使用 properties 标签来引入外部 properties 配置文件的内容: resource:引入类路径下的资源 url:引入网络路径下或者磁盘路径下的资源 注:将之前编写的代码进行如下的修改后,输出依然没有任何问题. 2.settings 设置: 这是 MyBatis 中极为重要的调整设置,它们会改变 MyBatis 的 运行时行为.(这里用一个例子来介绍,之后的博文中会一点一点说明.) 注: mapUnderscoreToCamelCase 参数设置是将字段中的下划线命名规范转变

JAVA 框架-Mybatis

一.Mybatis简介 1.MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .2013年11月迁移到Github.iBATIS一词来源于"internet"和"abatis"的组合,是一个基于Java的持久层框架.iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs). 2.功

java之mybatis之配置文件讲解

1.核心配置文件 <configuration> <!-- 它们都是外部化,可替代的属性.可以配置在一个典型的Java 属性文件中,或者通过 properties 元素的子元素进行配置 --> <properties resource="jdbc.properties"></properties> <!-- 别名是一个较短的Java 类型的名称.用来设置别名 --> <typeAliases> <!-- 为指