【SSM】MyBatis(三.核⼼配置⽂件详解)
创始人
2025-05-30 18:39:00
0

文章目录

  • 1.environment
  • 2.transactionManager
  • 3. dataSource
    • 3.1 使用UNPOOLED
    • 3.2 使用POOLED
    • 3.3 POOLED的一些配置
  • 4.properties
  • 5.mapper

1.environment

两个数据库都有一张名为car的表:
在这里插入图片描述
在这里插入图片描述

mybatis-config.xml




CarMapper.xml



insert into t_car values(null, '8888', '沃尔沃', 30.0, '2000-09-08', '燃油车')

测试类
ConfigurationTest.java

package com.sdnu.mybatis.test;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;import java.io.IOException;public class ConfigurationTest {@Testpublic static void main(String[] args) throws IOException {SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("mybatis-config.xml"));SqlSession sqlSession = sqlSessionFactory.openSession();sqlSession.insert("car.insertCar");sqlSession.commit();sqlSession.close();SqlSessionFactoryBuilder sqlSessionFactoryBuilder1 = new SqlSessionFactoryBuilder();SqlSessionFactory sqlSessionFactory1 = sqlSessionFactoryBuilder1.build(Resources.getResourceAsStream("mybatis-config.xml"), "mybatisDB");SqlSession sqlSession1 = sqlSessionFactory1.openSession();sqlSession1.insert("car.insertCar");sqlSession1.commit();sqlSession1.close();}
}

设置断点
在这里插入图片描述
断点前:

在这里插入图片描述
在这里插入图片描述
断点后

在这里插入图片描述
在这里插入图片描述

2.transactionManager

作用:配置任务管理器,指定mybatis用什么方式去管理事务
type属性有两个值

  • JDBC
    使用原生jdbc代码来管理事务
  • MANAGED
    mybatis不再管理事务,而是将事务交给其它JavaEE容器管理,例如spring
    (交给容器去管理事务,但⽬前使⽤的是本地程序,没有容器的⽀持,当mybatis找不到容器的⽀持时:没有事务。也就是说只要执⾏⼀条DML语句,则提交⼀次。)

3. dataSource

(1)dataSource被称为数据源
(2)作用:为程序提供Connection对象。(但凡是给程序提供Connection对象的,都叫做数据源。)
(3)数据源实际上是一套规范。JDK中有这套规范:javax.sql.DataSource(这个数据源的规范,这套接口实际上是JDK规定的。)
(4)我们自己也可以编写数据源组件,只要实现javax.sql.DataSource接口就行了。实现接口当中所有的方法。这样就有了自己的数据源。
比如你可以写一个属于自己的数据库连接池(数据库连接池是提供连接对象的,所以数据库连接池就是一个数据源)。
(5)常见的数据源组件(数据库连接池):druid
(6)type属性用来指定数据源的类型,就是指定具体使用什么方式来获取Connection对象:(type属性有三个值:必须是三选一。
type=“[UNPOOLED|POOLED|JNDI]”)

  • UNPOOLED:不使用数据库连接池技术。每一次请求过来之后,都是创建新的Connection对象。
  • POOLED:使用mybatis自己实现的数据库连接池。
  • JNDI:集成其它第三方的数据库连接池。
    JNDI是一套规范。谁实现了这套规范呢?大部分的web容器都实现了JNDI规范:
    例如:Tomcat、Jetty、WebLogic、WebSphere,这些服务器(容器)都实现了JNDI规范。
    JNDI是:java命名目录接口。Tomcat服务器实现了这个规范。

3.1 使用UNPOOLED

        

测试程序:

    @Testpublic void testDataSource() throws IOException{SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("mybatis-config.xml"));//通过sqlSessionFactory可以开启多个会话//会话1SqlSession sqlSession1 = sqlSessionFactory.openSession();sqlSession1.insert("car.insertCar");sqlSession1.commit();sqlSession1.close();//会话2SqlSession sqlSession2 = sqlSessionFactory.openSession();sqlSession2.insert("car.insertCar");sqlSession2.commit();sqlSession2.close();}

在这里插入图片描述

3.2 使用POOLED

针对上面程序改一行:


在这里插入图片描述

3.3 POOLED的一些配置

在这里插入图片描述

4.properties

jdbc.properties

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

mybatis-config.xml











resource从类路径开始加载

5.mapper

mapper标签⽤来指定SQL映射⽂件的路径,包含多种指定⽅式,这⾥先主要看其中两种:

  • mapper标签⽤来指定SQL映射⽂件的路径,包含多种指定⽅式,这⾥先主要看其中两种:
  • 第⼆种:url,从指定的url位置加载

相关内容

热门资讯

十一国庆节短信祝福语 十一国庆节短信祝福语  无论是身处学校还是步入社会,大家对祝福语都不陌生吧,祝福语有助于促进交流,拉...
温馨除夕祝福语短信 温馨除夕祝福语短信25条  祝你除夕:大名鼎鼎,大吉大利,大红大紫,大显身手,大炮而红,大鸣惊人,大...
生日送花贺卡简短祝福语 生日送花贺卡简短祝福语(精选70句)  在平时的学习、工作或生活中,大家都写过祝福语,肯定对各类祝福...
Java中定时任务浅析 Java中有那些定时任务的实现方式,下面从java原生和spring封装对动态管理定时...
周岁的生日祝福语 周岁的生日祝福语(精选120句)  周岁的生日祝福语有哪些?青春阳光欢笑,为这属于你的日子,舞出欢乐...
【操作系统基础】操作系统的分类... 前言 这篇文章是操作系统基础的开始,收录于我是沐风晓月的《操作系统原理》专栏 文章目录前言一 .操...
生日的祝福语 生日的祝福语(精选120句)  在平平淡淡的学习、工作、生活中,大家一定都接触过祝福语吧,祝福语的种...
爱情的祝福成语有哪些 爱情的祝福成语有哪些  成语是中国传统文化的一大特色,有固定的结构形式和固定的说法,表示一定的意义,...
幼儿园送给教师节老师的祝福语 幼儿园送给教师节老师的祝福语(精选55句)  在日常的学习、工作、生活中,许多人都有过写祝福语的经历...
牛年春节新春祝福语 牛年春节新春祝福语  在我们平凡的日常里,说到祝福语,大家肯定都不陌生吧,祝福语的种类很多,可分为吉...
使用premake帮助生成VS... Premake :https://github.com/premake/premake...
画图解释一个汇编小例子 这是对应的C代码 int caller() {int temp1 = 125;int tem...
学习黑客十余年,如何成为一名高...   1. 前言  说实话,一直到现在,我都认为绝大多数看我这篇文章的读者...
春节的拜年祝福语 春节的拜年祝福语精选  春节要登场,鞭炮快乐响,下面是春节的拜年祝福语精选,一起来看一下吧。  1....
爱国的对联 爱国的对联  说起“爱国“,人们首先想到的是那些家喻户晓的爱国英雄,但其实还有豪言壮语的`爱国对联。...
中秋节散文随笔抒情 中秋一词,最早见于《周礼》。根据我国的古代历法,汉服中秋农历八月十五,在一年秋季的八月中旬,故称“中...
【B/S医院区域云LIS系统源... ▶  【云LIS系统源码说明】: ❶云LIS源码,系统完全采用B/S架构...
智慧政务一网通办云平台顶层设计... 本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系...
HCIE-Cloud Comp... 我是它的题目,要就来先看看我咯 确认密码是否正确 错误出现场景:键盘大小键输入错误、手抖写错 操作:...
滑步处理 - 让动画脚步和移位... 游戏制作中,通常的做法是让动画播放跑步或者其他移动动画,然后让刚体跟着移...