当前位置: 首页 > news >正文

第四章MyBatis核心配置文件

environments与environment标签

  • environments主要用来配置环境,属性default表示默认环境,值为environment的id
  • environment为具体环境,属性id表示环境唯一标识
  • environments可以有多个environment

加载默认环境

sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("ApplicationContext.xml"));

加载指定环境

sqlSessionFactory = sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("ApplicationContext.xml"),"development");

transactionManager标签

  • 作用主要是用来配置事务管理器
  • type属性有俩个值JDBC,MANAGED
  • JDBC是使用原生JDBC来管理事务
  • MANAGED是将事务交给其他容器

dataSource标签

  • 被称为数据源,给程序提供Connection对象
  • type属性就是指用什么方式来获取Connection对象,type有3个值。type值决定了可以使用的配置文件
  • UNPOOLED:不使用数据库连接池技术,每次请求过来就创建一个新的Connection对象
  • POOLED:使用MyBatis自己实现的数据库连接池
  • JNDI:集成第三方数据库连接池

具体的配置信息参考官网
https://mybatis.net.cn/configuration.html#properties


propertys与property标签

propertys能够让我们的配置更加灵活

配置方式一

properties中的property标签的name属性和value类似map的key
和value

在propertys配置的属性可以在其他property中可以通过${}获取到

<properties><property name="jdbc.driver" value="com.mysql.cj.jdbc.Driver"/><property name="jdbc.url" value="jdbc:mysql://localhost:3306/test"/><property name="jdbc.username" value="***"/><property name="jdbc.password" value="***"/>
</properties>...
<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>
...

配置方式二

resources下创建jdbc.properties文件并且加入如下代码

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test
jdbc.username=***
jdbc.password=***

ApplicationContext.xml中加入如下代码,引入jdbc配置,可以使用url绝对路径

<properties resource="jdbc.properties"/>

mappers与mapper标签

  • mapper通过resource或者url找到sql映射文件
  • mapper可以有多个

settings与setting标签

  • 通过配置可以改变MyBatis的运行行为

具体配置参考官网
https://mybatis.net.cn/configuration.html#environments

http://www.lryc.cn/news/130453.html

相关文章:

  • ⛳ Docker - Centos 安装配置
  • Python web实战之Django 的跨站点请求伪造(CSRF)保护详解
  • ARM(汇编指令)
  • 神经网络基础-神经网络补充概念-01-二分分类
  • Linux16(1) 线程同步
  • 深入探讨lowess算法:纯C++实现与局部加权多项式回归的数据平滑技术
  • Sui安全篇|详解零知识证明 (ZKP) Groth16的可塑性
  • 记录--webpack和vite原理
  • Windows系统中使用bat脚本启动git bash 并运行指定命令 - 懒人一键git更新
  • elementui form组件出现英文提示
  • 使用windows Api简单验证ISO9660文件格式,以及装载和卸载镜像文件
  • iPhone 15受益:骁龙8 Gen 3可能缺席部分安卓旗舰机
  • 理解持续测试,才算理解DevOps
  • 使用OpenCV与深度学习从视频和图像中精准识别人脸: Python实践指南
  • 面试之快速学习C++11-完美转发,nullptr, shared_ptr,unique_ptr,weak_ptr,shared_from_this
  • android resoure资源图片颜色值错乱
  • leetcode第 357/358 场周赛
  • Jmeter 分布式性能测试避坑指南
  • 基于SpringCloud的会议室预约系统Java基于微服务的会议室报修系统【源码+lw】
  • idea设置忽略大小写
  • re学习(35)攻防世界-no-strings-attached(动调)
  • STM32 F103C8T6学习笔记8:0.96寸单色OLED显示屏显示字符
  • vscode的配置和使用
  • SpringBoot统⼀功能处理
  • LeetCode 每日一题 2023/8/14-2023/8/20
  • 进入微服务阶段后的学习方法
  • C/C++中const关键字详解
  • 【2023新教程】树莓派4B开机启动-树莓派第一次启动-树莓派不使用显示器启动-树莓派从购买到启动一步一步完全版!
  • LA@2@1@线性方程组和简单矩阵方程有解判定定理
  • 如何使用ChatGPT创作一个小说式的虚构的世界