MyBatis(2)-全局配置文件

本文的代码是在MyBatis(1)-简单入门基础之上进行学习的,如有不懂请先看此博文MyBatis(1)-简单入门

1)配置文件的安装

--->在联网的情况下,点击去下载http://mybatis.org/dtd/mybatis-3-config.dtd

--->未联网:去mybatis的jar包->org.apache.ibatis.builder.xml->文件夹下的两个.dtd文件解压

点击选中我们的dtd地址选中->preferences->XML->XML Catalog->ADD->Location是文件的地址,Key type必须选中URI,Key就是我们的dtd地址->选择合适的地址

引入成功之后,我们输入在myeclipse中键盘Alt+/会有提示,需要关闭重启

目录如下:

2)属性讲解:

2.1)properties

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

属性:

resource:引用类路径下的资源

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

db.properties在同一目录下,所以可以直接写处文件的名字

假设db.properties在com.MrChengs.db目录下

此时resource="com.MrChengs/db/db.properties"

    在于spring整合的时候就会相对比较少的使用这个属性!

2.1.1)首先建立db.properties文件,其目录如下图所示

       注意:配置文件的位置,在resource里面的路径问题

    

db.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=9876

2.1.2)在mybatis-config.xml文件中加入

<properties resource="db.properties" ></properties>

2.2.3)得到我们的数据信息

             <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>

此时我们再次运行之前的测试代码,一样可以查询出结果

/------------------------------------------------------------分割线------------------------------------------------------------/

2.2)settings

  这是MyBatis中极为重要的调整设置,他会改变MyBatis的运行行为

用来设置每一个设置项的

有很多的属性标签

name:设置项的名字

value:设置项的取值

   实例:mybatis-config.xml加入

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

假设我们数据库的字段和类的字段不一样:数据库----last_name   类----lastName

此时使用这个驼峰命名发,即可匹配到两者之间的关系,否杂而在查询的时候可能会显示为null

此处不在做详细的测试,可以参考相关的文档。

/------------------------------------------------------------分割线------------------------------------------------------------/

2.3)typeAliases(别名处理器)

    把java类型起一个简单的名字,可以减少工作量

2.3.1)单个类起别名:

2.3.1.1在mybatis-config.xml文件中: 此时使用默认的系统命名法

 <typeAliases>
           <!-- 为某个java类型起别名
                 type:指定起别名的全类名,默认就是类名小写
                    可以用alias为起指定新的别名
                    我们此时给Employee起别名
           -->
           <typeAlias type="com.MrChengs.bean.Employee"/>
     </typeAliases>

2.3.1.2)在EmployeeMapper.xml文件中

     <!-- 接口式编程 -->
     <select id="getEmployee" resultType="employee">
           select id,name,gender,email from test where id = #{id}
     </select>

我们继续使用上次的查询方法进行修改,在默认不命名的情况下,是类的小写!

此时可以查询成功!

2.3.2)使用alias

2.3.2.1)在mybatis-config.xml文件中,是在2.3.1中的实例中加入alias

此时把其类命名为emp

<typeAlias type="com.MrChengs.bean.Employee" alias="emp"/>

2.3.2.2)在EmployeeMapper.xml文件中

 <select id="getEmployee" resultType="emp">
           select id,name,gender,email from test where id = #{id}
  </select>

此时可以查询成功!

2.3.3)多个类一起起别名时

2.3.3.1)在mybatis-config.xml

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

2.3.3.2)EmployeeMapper.xml文件中

<select id="getEmployee" resultType="Employee">
           select id,name,gender,email from test where id = #{id}
</select>

此时查询是可以成功的!

2.3.4)在多各类一起起别名时

容易产生一个问题,假设此时子包里和父包了都有一个同名类

此时MyBatis会很难进行区分,所有有以下的方法:

2.3.4.1)在Employee.java中

并且使用@Alias进行重命名

2.3.4.2)EmployeeMapper.xml文件中引用我们所创建的新的别名"empl"

<select id="getEmployee" resultType="empl">
           select id,name,gender,email from test where id = #{id}
</select>

此时会编译得到我们想要的答案!

注意:在起别名的时候,不区分大小写!

/------------------------------------------------------------分割线------------------------------------------------------------/

2.4)typeHandlers

架起java类型和数据库类型的映射

使用方法:

/------------------------------------------------------------分割线------------------------------------------------------------/

2.5)plugins

  待补充。。。

/------------------------------------------------------------分割线------------------------------------------------------------/

2.6)environments 环境

 可以配置多种环境

<environments default="development">

  default:可以指定使用那种环境,可以进行快速的切换

environment:配置一个具体的环境,可以配置多个具体环境,且必须配置

   id:代表当前环境的唯一标识

transactionManager:事物管理器

   type:事物管理器的类型,有两个取值    JDBC(使用mysql)/MANAGED(使用j2ee自带的)

dataSource:数据源

    type:数据源类型   POOLED(使用连接池)/JNDI/UNPOOLEN(不使用连接池)

property:数据源的相关信息

             <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>

具体的讲解如上!

/------------------------------------------------------------分割线------------------------------------------------------------/

2.7)databaseIdProvider

  代码在environments标签下面

  可移植性的重要性

  支持多数据库的厂商的

2.7.1)在mybatis-config.xml

 type="DB_VENDOR"固定值,作用是得到数据库厂商的标识来执行不同的SQL语句
<databaseIdProvider type="DB_VENDOR">
           <!-- 为不同数据库起别名 -->
           <property name="MySQL" value="mysql"/>
           <property name="SqlSever value="sqlSever"/>
        </databaseIdProvider>

2.7.2)引用方式

假设此时databaseId=sqlSever,则执行的是SqlSever数据库!

/------------------------------------------------------------分割线------------------------------------------------------------/

2.8)mappers

  将sql映射注册到全局配置中

  mapper注册一个sql映射

resource:引用类路径下的sql映射文件

uri:引用网络或这磁盘路径下的sql映射文件

class:引用注册(接口)

有sql映射文件名必须和接口同名,并放在同意目录下

一般的mapper都放在mapper包里面

假设在mybatis.mapper包里面

则resource="mybatis/mapper/xxxx.xml

在mybatis-config.xml文件的最底部

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

此时此刻配置文件差不多讲到这里要结束了

此时此刻,把本次博文是修改到的代码奉上,结合MyBatis(1)-简单入门

3.1)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>

        <!--
        1.properties:可以使用properties来引入外部的properties配置文件内容
        属性:
        resource:引用类路径下的资源
        url:引入网络或者磁盘路径下的资源
        db.properties在同一目录下,所以可以直接写处文件的名字
        假设db.properties在com.MrChengs.db目录下
        此时resource="com.MrChengs/db/db.properties"
         -->
    <properties resource="db.properties" ></properties>

    <!--
        2.settings设置
        这是MyBatis中极为重要的调整设置,他会改变MyBatis的运行行为
        用来设置每一个设置项的
        name:设置项的名字
        value:设置项的取值
     -->
     <settings>
         <setting name="mapUnderscoreToCamelCase" value="true"/>
     </settings>

    <!--
        3.typeAliases:别名处理器
     -->
    <typeAliases>
        <!-- 为某个java类型起别名
             type:指定起别名的全类名,默认就是类名小写
                可以用alias为起指定新的别名
                我们此时给Employee起别名
        -->
        <typeAlias type="com.MrChengs.bean.Employee" alias="emp"/>
        <!--
             package:为某个包下的 所有类批量起别名
             name:指定包名(为当前包以及下面所有的后代包的每一个类都起一个别名(默认类名小写)
        -->
        <package name="com.MrChengs.bean"/>
    </typeAliases>

    <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>

    <!--
        5.databaseIdProvider
        支持多数据库的厂商的
            type="DB_VENDOR"固定值,作用是得到数据库厂商的标识来执行不同的SQL语句
     -->
    <databaseIdProvider type="DB_VENDOR">
        <!-- 为不同数据库起别名 -->
        <property name="MySQL" value="mysql"/>
    </databaseIdProvider>

    <!-- 将我们写好的sql映射文件(EmployeeMapper.xml)一定要注册到全局配置文件(mybatis-config.xml)中 -->
    <mappers>
        <mapper resource="EmployeeMapper.xml" />
    </mappers>
</configuration>

3.2)EmployeeMapper.xml

<?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">
<mapper namespace="com.MrChengs.dao.EmployeeMapper">

     <!-- 原生 -->
    <select id="getId" resultType="com.MrChengs.bean.Employee">
        select id,name,gender,email from test where id = #{id}
    </select>

    <!-- 接口式编程 -->
    <select id="getEmployee" resultType="empl" databaseId="mysql">
        select id,name,gender,email from test where id = #{id}
    </select>
</mapper>

本次博文到此结束,谢谢您的浏览,如果问题,请提出,博主及时修改。

原文地址:https://www.cnblogs.com/Mrchengs/p/9721330.html

时间: 2024-10-09 21:25:37

MyBatis(2)-全局配置文件的相关文章

Mybatis的全局配置文件标签介绍(mybatis-config.xml)

全局配置文件中本人只记录了常用的几个  typeHandlers, objectFactory,objectWrapperFactory, reflectorFactory, plugins, databaseIdProvider 这几个只是作为了解,没做记录 mybatis-config.xml: 1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE configuration 3 PUBLI

Mybatis(二) 全局配置文件详解

这节来说说全局配置文件的东西,非常简单.看一遍就懂了. --WH 一.全部配置内容 SqlMapConfig.xml的配置内容和顺序如下,顺序不能乱.现在来对这些属性的意思一一进行讲解. 二.properties 作用:引用java属性文件中的配置信息,比如,加载连接数据库的各种属性的配置文件. db.properties 1 <!-- 2 properties:引用java属性文件中的配置信息 3 比如加载连接数据库的帐号密码等信息的properties配置文件. 4 使用${}可以引用已经加

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

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

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(对

SqlMapConfig.xml全局配置文件介绍——(四)

----------mybatis的全局配置文件SqlMapConfig.xml,配置内容如下:----------- properties(属性) settings(全局配置参数) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境集合属性对象) environment(环境子属性对象) transactionManager(事务管理) dataSource(数据源) map

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学习(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学习总结(三)——SqlMapConfig.xml全局配置文件解析

经过上两篇博文的总结,对mybatis中的dao开发方法和流程基本掌握了,这一节主要来总结一下mybatis中的全局配置文件SqlMapConfig.xml在开发中的一些常用配置,首先看一下该全局配置文件中都有哪些可以配置的东西: 配置内容 作用 <properties> 用来加载属性文件 <settings> 用来设置全局参数 <typeAliases> 用来设置类型的别名 <typeHandlers> 用来设置类型处理器 <objectFactor

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.