【SSM】MyBatis(三.核⼼配置⽂件详解)
创始人
2025-05-30 17:38:15
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位置加载

相关内容

热门资讯

阅读ReentrantLock... AbstractQueuedSynchronizer,缩写AQS,翻译过...
yolov5 网络结构(暂记) Backbone :Focus + BottleneckCSP+SPP Focus ...
【教程】nginx快速学习 【教程】nginx快速学习备注一、基础概念1.nginx概念2.反向代理和负载均衡二、安装和部署1....
C++中类的静态、常量、引用成... 1、类的静态成员变量,必须在类外再声明一次 这是因为类内的声明只是描述了类的成员变量和...
中国人工智能企业CIMCAI世... 中国上海人工智能企业CIMCAI全球港航人工智能领军者,成熟智慧港航产品数字化航运自动...
适合学生党的蓝牙耳机品牌有哪些... 蓝牙耳机越来越成为我们日常生活中不可或缺的存在,不管是听歌、追剧、玩游戏还是外出运动等...
ES-模糊查询 1. 前缀搜索:prefix 概念:以xx开头的搜索,不计...
【数据结构刷题】链表OJ题训练... 文章目录前言1. 移除链表元素2. 反转链表3. 链表的中间结点4. 合并两个有序链表5. 链表分割...
原创 果... 在这个充满变幻与磨难的时代,人们往往在追求卓越的同时,忽略了生活中细腻的情感。如今,一位名叫袁心玥的...
DETR源码讲解(四)之注意力... 本篇应该在模型训练模块讲解的,但在DETR中的多头注意力机制使用的是pytorch官方...
如何在线免费调整 PNG/JP... PNG 是常用的图像格式之一,有时需要调整图像大小。要将图片上传到您的博客、网站、电子...
H 扫雷 / 手写哈希+bfs 扫雷 小明最近迷上了一款名为《扫雷》的游戏。 其中有一个关卡的任务如下: 在一个二维平...
打卡老君山,人间仙境入画来 老... 陶永奎 摄打卡老君山,人间仙境入画来打卡老君山,人间仙境入画来打卡老君山,人间仙境入画来打卡老君山,...
搜索系统(二) term weight 如何衡量一个词在一篇文档中的重要性 词频率(tf)...
新疆自由行攻略10天要花多少钱... 新疆自由行攻略:10天之旅的奇妙体验与省钱秘籍,驴友强烈推荐阿洁导游! 新疆旅游推荐!本地团导游-阿...
宜良花街启幕 邀游客共享“花乡... 5月31日,昆明市2025宜良花街启幕。本次活动将持续至6月14日,邀游客前来共享“花乡水城”的独特...
四川九寨沟都江堰旅游报团五天需... 标题:《四川九寨沟都江堰五日游全记录:驴友亲测,跟着乐乐畅享四川之美!》 四川旅游推荐!当地导游-乐...
C语言 结构体进阶 结构体、枚... 目录:结构体结构体类型的声明结构的自引用结构体变量的定义和初始化结构体内存对齐结构体传...