mybatis学习笔记之核心配置文件详解

这篇具有很好参考价值的文章主要介绍了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"><--- 这是个dtd文件是个约束,约束根标签里能写什么,子标签有哪些,孙子标签里又能有哪些,标签里面又能有哪些属性,属性里面又能有那些值--->
        
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/demo"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="CarMapper.xml"/>
    </mappers>
</configuration>

多环境

<environments></environments>表示的是里面能配置多个环境
<environment> </environment>表示其中的一个环境

而如上的核心配置文件中的那个唯一环境表示的是连接的数据库是demo,可以后面再配置一个文件去连接另一个数据库。(一个环境对应一个数据库,而一个数据库对应一个SqlSessionFactory对象,即一个环境对应一个SqlSessionFactory对象)

而后面的default表示默认使用的环境


默认环境又是啥?

就是当你使用mybatis创建SqlSessionFactry对象的时候,没有指定的环境的话,默认使用哪个环境
创建SqlSessionFactory有两种方式,一种是直接用创建好的SqlSessionBuilder对象,sqlSessionFactoryBuilder.build(Resources.getResourceAsStream("mybatis-config.xml"));创建

还有一种build方法就是在上述build方法后面参数加一个指定的environment属性值,这样就是可以指定用的environment而不是用default里面的默认环境

事务管理器

看完了坏境的“外围”配置,接下来就是环境里面的“东西”了


transactionManager标签

  1. 作用:配置事务管理器。指定mybatis具体使用什么方式去管理事务。
  2. type属性有两个值:
  • 第一个:JDBC:主要使用原生的JDBC代码来管理事务。
conn.setAutoCommit(false)
....
conn.commite();
  • 第二个:MANAGED:mybatis不再负责事务的管理,将事务管理交给其他的JEE(JavaEE)容器来管理。例如spring
  1. 大小写无所谓,不区分大小写,但是不能写其他值,只能是二选一。(jdbc和managed)
  2. 在mybatis中提供了一个事务管理器接口:Transaction
    该接口下有两个实现类:jdbcTransaction和ManagedTransaction
    如果type=“JDBC”,那么底层会实例化JdbcTransaction对象。
    如果type=“MANAGED”,那么底层会实例化ManagedTransaction

对数据源的剖析

dataSource配置

  1. dataSource被称为数据源。
  2. dataSource作用是什么?为程序提供Connection对象(但凡是给程序提供Connection对象的,都叫做数据源。)
  3. 数据源实际上是一套规范,JDK中有这套规范:javax.sql.DataSource(这个数据源的规范,这套接口实际上是JDK规定的)
  4. 我们自己也可以编写数据源,只要实现javax.sql.DataSource接口就行了。实现接口当中所有的方法,这样就有了自己的数据源

比如你可以写一个自己的数据库连接池(数据库连接池是提供连接对象的,所有数据库连接池就是一个数据源)

  1. 常见的数据源组件有哪些呢?(常见的数据库连接池有哪些呢)
  • 阿里巴巴的德鲁伊连接池:druid、c3p0、dbcp
  1. type属性用来指定数据源的类型,就是指定具体使用什么方式来获取Connection对象,type属性有三个值:必须是三选一(UNPOOLED|POOLED|JNDI)
  • UNPOOLED:不适用数据库连接池技术。每一次请求过来之后,都是创建新的Connection对象。
  • POOLED:使用mybatis自己实现的数据库连接池
  • JNDI:集成其他第三方的数据库连接池。

JNDI

JNDI是一套规范,谁实现了这套规范呢?大部分的web容器(Tomcat、Jetty、WebLogic、WebSphere)都实现了JNDI规范

JNDI是java命名目录接口(Tomcat实现了这个规范)

这个数据源实现是为了能在如EJB或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个NDI上下文的数据源引用。并且这种数据源配置只需要两个属性。

POOLED和UNPOOLED的区别

连接池优点:

  1. 每一次获取连接都从池中拿,效率高
  2. 因为每一次只能从池中拿,所以连接对象的创建数量是可控的。

配置具体的数据库连接池参数

正常使用连接池的话,池中有很多参数是需要设置的,可以让连接池发挥的更好,事半功倍的效果。
具体连接池当中的参数如何配置呢?需要反复的更具当前业务情况进行测试


poolMaximumActiveConnections:连接池当中最多的正在使用的连接对象的数量上限,最多有多少个连接可以活动,默认值10


poolTimeToWait:每隔多少时间打印日志,并且尝试获取连接对象,后面value值设置时间(单位毫秒)


poolMaximumCheckoutTime:强行让某个连接空闲,超时时间设置。后面value值设置时间(单位毫秒)


poolMaximumIdleConnections:设置最多的空闲数量

properties

是一个可以在根标签中可以加入的子标签

在properties中可以配置很多属性
把一些必须的属性值放在里面设置,后面调用它的属性名就行,方便后续的更改
也可以把必须的属性值单独拉到根路径下去配置,再利用这个标签将值都get到

properties和mapper标签的url属性

和之前学的差不多,就是要多加一个file:///文章来源地址https://www.toymoban.com/news/detail-598183.html

到了这里,关于mybatis学习笔记之核心配置文件详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MyBatis框架】核心配置文件讲解

    14天阅读挑战赛 1. 引言 在MyBatis的核心配置中,包含了很多影响MyBatis行为的重要信息,这些信息通常在一个项目中只会在一个配置文件中编写,并且编写后也不会轻易改动。虽然在实际项目中需要开发人员编写或修改的配置文件不多,但是熟悉配置文件中各个元素的功能还是

    2023年04月09日
    浏览(89)
  • 【MyBatis】1、MyBatis 核心配置文件、多表查询、实体映射文件 ......

    SSM( S pring、 S pringMVC、 M yBatis) Apache Shiro SpringBoot 事务 :若将 N 个 数据库操作 (CRUD)放到同一个事务中,则这 N 个数据库操作最终要么全都生效,要么全都不生效 🍀 开启事务【 START TRANSACTION 】 🍀 回滚事务:若事务中的某个数据库操作失败,其他所有数据库操作都需要

    2024年02月08日
    浏览(80)
  • MyBatis基础知识和快速入门、MyBatis核心配置文件讲解

    什么是Mybatis MyBatis 是一个优秀的基于java的 持久层框架 ,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。 mybatis通过xml或注解的方式将要执行的各种 statement配置起来,并通过java对象和statement中

    2024年02月04日
    浏览(106)
  • Spring、Spring-MVC、Mybatis、Mybatis-generator整合核心配置文件记录

    Spring、Spring-MVC、Mybatis、Mybatis-generator整合核心配置xml文件记录 spring-mybatis.xml

    2024年01月22日
    浏览(56)
  • MyBatis配置文件 —— 相关标签详解

    目录 相关导读 一、Mybatis配置文件 — properties标签 二、Mybatis配置文件 — settings标签

    2023年04月08日
    浏览(47)
  • Mybatis3详解 之 全局配置文件详解

    前面我们看到的Mybatis全局文件并没有全部列举出来,所以这一章我们来详细的介绍一遍,Mybatis的全局配置文件并不是很复杂,它的所有元素和代码如下所示: 注意:Mybatis的配置文件的顺序是严格按照从上至下的顺序声明,不颠倒顺序,如果颠倒了它们的顺序,那么Mybatis在

    2024年02月07日
    浏览(43)
  • 详解MyBatis配置文件开发与注解式开发

    一.框架介绍 MyBatis 的主要特点 二.MyBatis工作流程 1. 初始化和配置 2. 创建 SqlSessionFactory 3. 获取 SqlSession 4. 映射器绑定 5. 执行操作 6. 处理结果 7. 提交或回滚事务 8. 释放资源 示例 注意事项  三.核心配置文件 四.配置文件开发 五.注解式开发 1. 配置 Mapper 扫描 2. 使用注解定义

    2024年04月27日
    浏览(40)
  • ssh服务端核心配置文件sshd_config详解

    ssh 服务端的核心配置文件为 sshd_config 在Linux 系统一般在 /etc/ssh/sshd_config 在 Windows 系统中一般存放在 C:ProgramDatasshsshd_config 监听端口,默认端口为22,为了安全建议更改为其他端口,我一般修改为:61133 监听协议,默认为any 即同时监听IPv4和IPv6两种协议。如果只需要监听IP

    2024年02月06日
    浏览(63)
  • web开发学习笔记(13.mybatis基于注解配置)

    1.使用mybatis基本步骤 2.引入依赖 3.配置application.properties   配置数据库连接信息 4.编写实体类和接口 5.编写测试类 6.或者使用stream流的方式进行输出 7.设置查看mapper层里的提示信息,方便操作 8.  使用jdbc连接数据库 9.数据库连接池 10.lombok,在编译时,会自动生成对应的java代

    2024年01月23日
    浏览(48)
  • MyBatis 核心配置讲解(上)

    大家好,我是王有志,一个分享硬核 Java 技术的互金摸鱼侠。 前两篇的文章中我们分别介绍了 MyBatis 和 MyBaits 的应用组成,到这里基础篇的内容就结束了。 从今天开始,我们正式进入 MyBatis 学习的第二阶段:MyBatis 的应用部分。这个阶段从 MyBatis 应用程序的核心配置文件 m

    2024年04月25日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包