Mybatis核心配置文件剖析

文章内容输出:拉勾教育java高薪训练营

Mybatis简介

在开始剖析Mybatis核心配置文件前,大家需要对Mybatis有一定的理解,并且知道Mybatis究竟是干什么的?我们学习任何一款框架都是要解决实际的问题,所以大家在学习框架之前首先都要明确几点:

1、为什么要学习Mybatis框架?
2、Mybatis框架的作用?
3、不用Mybatis框架可以解决现在的问题吗?

Mybaits是一款优秀的基于ORM的半自动轻量级持久层框架,它支持定制sql、存储过程以及高级映射。Mybatis几乎避免了所有JDBC代码和手动设置参数以及获取封装结果集。Mybatis可以使用简单的XML或注解来配置和映射原生类型、接口和JAVA的POJO(Plain Old Java Objects,普通老式Java对象)为数据库中的记录。

Mybatis核心配置文件

对于什么是Mybatis的核心配置文件如果有同学还不知道可以去参考Mybatis之环境搭建这篇文章。对于有过Mybatis使用经验的同学们都知道Mybatis的核心配置文件就是:sqlMapConfig.xml,下面我们将要介绍一下究竟什么是sqlMapConfig.xml

Mybatis之sqlMapConfig.xml

从名称上看我们就知道Mybatis的核心配置文件是一个XML类型的文件。那么既然是XML的文件,必然就存在XML标签。下面我们就从核心配置文件的标签入手,剖析一下Mybatis的核心配置文件。

<?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="dev">
            <environment id="dev">
            <transactionManager type="JDBC"/>
            <!-- 配置数据源信息 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/lgTest"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
             </dataSource>
        </environment>
    </environments>
    <!-- 引入mapper映射文件 -->
    <!-- 这个地方存在不同的引用方式 -->
    <mappers>
        <!-- 采用mapper标签进行引入 里面包含resource  class url等不同的引入方式 -->
        <!-- <mapper resource="com.lagou.mapper/UserMapper.xml" />-->
        <!-- 采用扫描包的形式来进行引入  通常采用这种方法进行配置 -->
        <package name="com.lagou.mapper"></package>
    </mappers>

</configuration>

一般标签

sqlMapConfig.xml配置文件中我们首先关注标签:
    // 这里需要注意的是,<environments>标签中的default指定的名称必须在当前环境中存在,否则执行报错
  (1)<environments>标签:从英文单词上说他就代表你的一个环境,并且可以通过default属性来指定默认的环境名称。
  (2) <environment> 标签:是指定当前环境的名称,并且可以通过ID来指定你的环境名称
  (3)<transactionManager>标签:指定事务管理类型,例如:JDBC,MANAGED
      a、JDBC: 这个配置就是直接使用了JDBC的提交和回滚设置,它依赖于从数据源得到的连接来管理事务作用域。
      b、MANAGED:这个配置几乎没做什么。它从来不提交或回滚一个连接,而是让容器管理事务的整个生命周期(比如JEE应用服务器上下文)。默认情况下他会关闭连接,然而一些容器并不希望这样,因此需要将closeConnection属性设置为false来阻止默认关闭的行为
  (4)<dataSource>标签:指定当前数据源类型,例如:POOLED,UNPOOLED,JNDI 
      a、POOLED:这种数据源的实现利用池的概念将JDBC连接对象组织起来
      b、UNPOOLED:这个数据源的实现只是每次请求时打开和关闭连接
      c、JNDI:这个数据源的实现是为了能在如EJB或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后当值一个JNDI上下文的引用。
  (5)<mapper>标签:该标签的作用是加载映射的,加载的方式有以下几种:
      a、使用相对路径加载资源的引用
      b、使用完全限定资源定位符(URL)
      c、使用映射器接口实现类的完全限定类名
      d、将包内的映射器接口实现全部注册为映射器

Properties标签

我们平常开发中习惯将数据源的信息单独抽取成一个properties文件,该标签可以加载额外的properties配置文件。

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

typeAliases标签

该标签可以配置java的别名,当配置了这个别名时,在mapper映射文件中方法的返回值使用别名即可。

 <!--  配置别名  -->
        <typeAliases>
            <typeAlias type="com.lagou.pojo.User" alias="user"/>
        </typeAliases>

mybatis为我们提供的别名列表,如下:

别名 数据类型
string String
long Long
int Integer
double Double
boolean Boolean
... ... ... ...

总结

Mybatis框架目前是主流框架,针对Mybatis的研究远远还没有结束,我们不仅要学会使用这款框架更要学习框架设计的思想。好了,看完本篇文章相信大家对Mybatis核心配置文件中的标签有了一定的了解。想要获取更多关于框架原理,设计模式等相关知识,请持续关注我哦!!!!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,589评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,615评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,933评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,976评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,999评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,775评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,474评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,359评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,854评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,007评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,146评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,826评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,484评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,029评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,153评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,420评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,107评论 2 356