MyBatis框架学习(3)----全局配置文件

1、全局配置文件和sql映射文件中引入dtd约束

我们在编写xml文件的时候,在eclipse中点击alt+/就会有相关标签的提示,如果你在你的xml中没有该提示的话,那么就要自己去引入该约束,具体步骤如下:

<1>找到该dtd约束文件的位置:如下图所示,位于jar包中的以下路径中。然后找到jar包所在,解压jar包,将这两个文件取出来。

<2>看看xml中的头部的几行代码:http网址代表了该dtd。

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

<3>点击eclipse中的window–>preferences–>xml–>xml catalog:

key填写那个xml头部的url,keytype选择URL,location则选择刚才解压好的两个dtd文件。

完成之后,关闭xml文件,再打开按alt+/就有提示了。

2、通过properties标签引入外部配置文件

我们之前的一些配置是自己手写的,类似于下的数据库连接时的一些配置:

<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>

其实我们也可以先配置好,如下的配置文件:

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

再通过导入文件的方式来读取配置,使用properties标签如下:

<!--  
properties标签可以引入外部的配置文件,properties类型的文件
resource导入类路径下的配置文件,类路径就是src这样的源文件夹
url来导入网络路径或者磁盘路径下的文件
通过${key}来读取properties类型的配置文件的内容
-->

<properties resource="dbconf.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>

3、 settings标签:运行时行为设置

在MyBatis中,这个标签是非常重要的一部分,它可以影响到运行时的效果,在MyBatis的配置文件中,关于settings的配置内容很多,所以我们就举一个参数的设置来看看:

<settings>
    <!-- 是否开启自动驼峰命名规则映射:即将数据库中的A_COLUMN映射成经典java属性命名aColumn的类似映射-->
    <setting name="mapUndersourceToCamelCase" value="true">
</settings>

例如:你在数据库中的字段是LAST_NAME,在javaBean中的属性的名字是lastName,这个时候我们做的查询就不用单独去取别名了,直接就能查询到,这也是为了编码规范。

4、标签typeAliases:别名处理器

我们在开发的时候对于一些经常用到的长字段类型名,我们在写长字段名字很麻烦,为了在之后的方便,我们可以给这个长字段起一个别名,例如在sql映射文件中我们经常用到的java类的全名:package.javaname

<select id="getStuById" resultType="com.bean.Student">

1、对于上面的com.bean.Student我们就可以用typeAliases标签来起别名,像下面这样:

<typeAliases>
<!--type填的是指定的全类型名,如果没有alias指定,默认就是类名的小写,别名不区分大小写,alias指定别名-->
    <typeAlias type="com.bean.Student" alias="Student"/>
</typeAliases>

2、我们也可以批量给一个包及其子包的内容修改别名:

<typeAliases>

    <!--批量修改一个包下的类:默认为所有的类起小写类名的别名-->
    <package name="com.bean"/>
</typeAliases>

3、也可以使用注解的方式给你想指定别名的类指定:

@Alias("别名")
public class...{
}

其实我们之前学过的一些java的关键字,一些基本数据类型也都是起过别名的:

5、标签typeHandlers:类型处理器简介

这里我们简单了解一下是干啥的?这个类型处理器是对jdbc的类型和java的类型进行转换用的,类似预官方文档的内容:从左到右分别为Type Handler,Java Types,JDBC Types

6、plugins插件简介

mybatis中允许插件去拦截一下几大对象的方法:

7、environments :运行环境

mybatis可以配置多个environment,即environments中是有environment标签来配置具体的 环境的,如下代码:

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

environments中的default是默认的环境,可以达到快速切换。
environment 中的id是指定环境的id,环境的唯一标识。比如:开发用的起名为develop,测试用的是test。
environment中又必须要有transactionManager和dataSource两个标签,transactionManager:事务管理器,type:事务管理器的类型,有JDBC|MANAGED两种类型,也可以自定义(了解即可)。
dataSource:数据源,type:UNPOOLED|POOLED||JNDI(了解即可),也可以自定义。

8、databaseIdProvider:多数据库支持

即支持多种的数据库版本,支持不同的sql语句,实现了可移植性。
比如我们之前的查询是在mysql下进行的,现在我们也想通过Oracle数据库来进行查询,具体的操作如下:

1、在全局配置文件中加入数据库的厂商标识,其中DB_VENDOR的作用就是可以获取到不同数据库厂商的标识,比如MySQL 、Oracle …….

<databaseIdProvider type="DB_VENDOR">
    <!--起别名-->
    <property name="MySQL" value="mysql"/>
    <property name="Oracle" value="oracle"/>
</databaseIdProvider>

2、然后配置好Oracle的驱动、URL、用户名、密码等信息。
3、新建一个environment模块,取名为“oracle”,之前的取名为“mysql”。将environments的defalut设置为oracle。
4、修改sql映射文件中的select标签,修改为:

<select id="getStuById" resultType="com.bean.Student" databaseId="oracle">

9、mappers:sql映射注册

将sql映射注册到全局配置文件中,一个一个的注册,具体如下:

<mappers>
<!-- sql映射文件注册到全局配置文件 
    resource:引入类路径下的配置文件
    url:网络路径或磁盘路径下的配置文件
    class:引用(注册)接口,写接口的全名
        1、有sql映射文件,必须和接口同名,与接口在同一目录下
        2、没有sql映射文件 ,所有的sql都是利用注解写在接口上
        推荐:重要的DAO接口要用sql映射文件
             不重要的或者简单的用注解
-->
<mapper class=""/>
<mapper url=""/>
<mapper resource="studentmapping.xml"/>
</mappers>

注解的接口如下:

批量注册:将一个包下面的进行注册

<package name="包的路径"/>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值