Mybatis连接池

Mybatis连接池提供了三种配置方式,配置的位置在SqlMapConfig.xmldataSource标签中,其type属性就是配置连接池的种类。type的可取值

1.POOLED:

利用“池”的概念将JDBC连接对象组织起来,避免了创建新的连接实例时所需的时间。这样使得应用的 响应速度更加快。

POOLED的配置属性:
poolMaximumActiveConnections:任意时间可以存在的活动连接数量,默认值是10.
poolMaximummldleConnections: 任意时间可能存在的空闲连接数
poolMaximumCheckoutTime: 在被强制返回之前,池中连接被检出时间,默认是20000ms.
poolTimeToWait: 如果获取连接花费的时间较长,他会给连接池打印状态日志并重新获取连接,避免在连接失败的时候一直等待,默认时间20000ms.

2.UNPOOLED:

​ 这个数据源的实现只是每次被请求的时候打开和关闭连接,对没有性能要求的简单应用程序是可以的。

UPOOLED的配置属性:
driver: jdbc驱动的java类完全限定名。、
url:数据库的JDBC URL地址。
username:数据库的登录名。
password:数据库的密码。
defaultTransactionLevel:默认连接事务隔离级别。

3.JNDI:

​ 这个数据源的实现是为了能在EJB或应用服务器这类容器中使用,容器可以集中在或在外部配置数据源, 然后放在一个JNDI上下文的引用。

inital_context: 这个属性是在InitalContext中寻找上下文。
data_source: 这个引用数据源实例位置的上下文路径。

Mybatis事务

  • 事务概述:

    事务就是对数据访问,修改,提交等一系列被绑定成一个整体的操作,事务是一个最小的执行单元,不能被分开,要么同时完成,要么同时失败。

  • 事务的特性 : ACID

    1.原子性(Atomicity):事务是应用中最小的执行单元,不可被分割。

    2.一致性(Consistency): 事务的执行结果,必须使数据库从一种一致性状态变到另一种一致性状态。

    3.隔离性(Isolation):各个事务的执行互不干扰,任意事务的内部操作对其他并发的事务都是隔离的。

    4.持续性(Durability):又叫持久性,即事务一旦提交,对数据的任何修改都会被保存到数据库。

  • 事务的隔离级别

    事务隔离级别 脏读 不可重复读 幻读 解释
    读未提交(read-uncommitted) 可以读到未提交的事物
    不可重复读(read-committed) 只能读提交的事物
    可重复读(repeatable-read) 事务提交前后都能读【MySql默认】
    串行化(serializable) serializable时会锁表,是最安全的,也是日常开发基本不会用
  • 术语解释:

    1.脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据

    2.不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果 不一致

    3.幻读:系统管理员A将数据库中所有学生的成绩从具体分数改为ABCDE等级,但是系统管理员B就在这个时候插入了一条具体分数的记录,当系统管理员A改结束后发现还有一条记录没有改过来,就好像发生了幻觉一样,这就叫幻读。

Mybatis基础(二)的更多相关文章

  1. mybatis 基础(二) CRUD中的关键点

    今日学习中遇见几个问题 关于mybatis foreach的几种情况 1.当我需要传入多个参数的时候,可以将参数封装进map集合中(一般来说是针对一个对象而言的,比如user中的username,ge ...

  2. mybatis 基础(二) xml文件中的其他知识点

    mybatis xml文件中一些标签的使用 此标签主要用作 配置 "别名" 如果实体类与数据库中字段名在不区分大小写的情况下相同的话, 那就不需要配置resultMap,因为mys ...

  3. mybatis 基础(二) 动态sql 关于where if / where choose when otherwise

    个人理解: where if就相当于正常的java中的if 语句,如果有多个条件组合判断的话用 and, or连接 而where choose when otherwise choose就好像是swi ...

  4. MyBatis基础入门《二十》动态SQL(foreach)

    MyBatis基础入门<二十>动态SQL(foreach) 1. 迭代一个集合,通常用于in条件 2. 属性 > item > index > collection : ...

  5. MyBatis基础入门《十二》删除数据 - @Param参数

    MyBatis基础入门<十二>删除数据 - @Param参数 描述: 删除数据,这里使用了@Param这个注解,其实在代码中,不使用这个注解也可以的.只是为了学习这个@Param注解,为此 ...

  6. MyBatis基础入门《二》Select查询

    MyBatis基础入门<二>Select查询 使用MySQL数据库,创建表: SET NAMES utf8mb4; ; -- ---------------------------- -- ...

  7. mybatis基础系列(二)——基础语法、别名、输入映射、输出映射

    增删改查 mapper根节点及其子节点 mybatis框架需要读取映射文件创建会话工厂,映射文件是以<mapper>作为根节点,在根节点中支持9个元素,分别为insert.update.d ...

  8. myBatis 基础测试 表关联关系配置 集合 测试

    myBatis 基础测试 表关联关系配置 集合 测试 测试myelipse项目源码 sql 下载 http://download.csdn.net/detail/liangrui1988/599388 ...

  9. JAVA之Mybatis基础入门--框架搭建与简单查询

    JAVA中,操作数据库有JDBC.hibernate.Mybatis等技术,今天整理了下,来讲一讲下Mybatis.也为自己整理下文档: hibernate是一个完全的ORM框架,是完全面向对象的.但 ...

  10. mybatis基础系列(四)——关联查询、延迟加载、一级缓存与二级缓存

    关本文是Mybatis基础系列的第四篇文章,点击下面链接可以查看前面的文章: mybatis基础系列(三)——动态sql mybatis基础系列(二)——基础语法.别名.输入映射.输出映射 mybat ...

随机推荐

  1. 异常 A component named TableViewForm already exists 解决方法

    用navicate连接mysql,打开数据库表格,出现 A component named TableViewForm already exists  异常信息,如下图: 1.异常原因: 打开的表格数 ...

  2. 1049 数列的片段和 (20 分)C语言

    给定一个正数数列,我们可以从中截取任意的连续的几个数,称为片段.例如,给定数列 { 0.1, 0.2, 0.3, 0.4 },我们有 (0.1) (0.1, 0.2) (0.1, 0.2, 0.3) ...

  3. 1045 快速排序 (25 分)C语言

    著名的快速排序算法里有一个经典的划分过程:我们通常采用某种方法取一个元素作为主元,通过交换,把比主元小的元素放到它的左边,比主元大的元素放到它的右边. 给定划分后的 N 个互不相同的正整数的排列,请问 ...

  4. wrk性能测试(详解)

    一.简介 wrk 是一款针对 Http 协议的基准测试工具,它能够在单机多核 CPU 的条件下,使用系统自带的高性能 I/O 机制,如 epoll,kqueue 等,通过多线程和事件模式,对目标机器产 ...

  5. 还看不懂同事代码?快来补一波 Java 7 语法特性

    前言 Java 平台自出现到目前为止,已经 20 多个年头了,这 20 多年间 Java 也一直作为最流行的程序设计语言之一,不断面临着其他新兴编程语言的挑战与冲击.Java 语言是一种静态强类型语言 ...

  6. Python for Data Analysis 学习心得(二) - pandas介绍

    一.pandas介绍 本篇程序上篇内容,在numpy下面继续介绍pandas,本书的作者是pandas的作者之一.pandas是非常好用的数据预处理工具,pandas下面有两个数据结构,分别为Seri ...

  7. Flutter 不能热加载,热重载按钮灰色,无法点击,flutter doctor 显示NO_PROXY is not set

    一.现象: Flutter 不能热加载 热重载按钮灰色,无法点击. 二.分析原因: 终端 flutter doctor 显示 NO_PROXY is not set 没有设置无代理的端口 终端:flu ...

  8. SQL Server2012高可用之事物复制(发布订阅)测试

      (一)测试目的 目前公司使用的SQL SERVER 2012高可用环境为主备模式,其中主库可执行读写操作,备库既不可写也不可读,即采用的高可用技术为"数据库镜像".存在的问题为 ...

  9. 【一起学源码-微服务】Eureka+Ribbon+Feign阶段性总结

    前言 想说的话 这里已经梳理完Eureka.Ribbon.Feign三大组件的基本原理了,今天做一个总结,里面会有一个比较详细的调用关系流程图. 说明 原创不易,如若转载 请标明来源! 博客地址:一枝 ...

  10. kuangbin专题 专题九 连通图 Strongly connected HDU - 4635

    题目链接:https://vjudge.net/problem/HDU-4635 题目:有向图,给定若干个连通图,求最多还能添加几条边,添完边后,图仍然要满足 (1)是简单图,即没有重边或者自环 (2 ...