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改结束后发现还有一条记录没有改过来,就好像发生了幻觉一样,这就叫幻读。

最新文章

  1. 教你一招:解决win10/win8.1系统在安装、卸载软件时出现2502、2503错误代码的问题
  2. 2015年最有价值的30个响应式WORDPRESS主题
  3. python之类的属性
  4. php获取数组中重复数据的两种方法
  5. LR(1)表生成算法演示程序
  6. DLL程序的创建步骤和測试程序
  7. 【android】android中activity的启动模式
  8. Shortest Path(思维,dfs)
  9. 采用大杀招QEMU调试Linux内核代码
  10. java算法 蓝桥杯 格子位置
  11. 201521123015 《Java程序设计》第9周学习总结
  12. [国嵌笔记][029][ARM处理器启动流程分析v2]
  13. windows部署SpiderKeeper(爬虫监控)
  14. java8 先groupingBy 后map
  15. Codeforces Round #313 (Div. 2) C. Gerald's Hexagon(补大三角形)
  16. C++ File Binary
  17. mysql 5.7 ~ 新特性
  18. 九浅一深ThreadLocal
  19. kotlin-2(IdeaIU-2018.2汉化破解)
  20. Day Six

热门文章

  1. linux installer os的驱动更新
  2. springboot-实现文件下载
  3. 20.用PyInstaller打包py程序的步骤及问题解决
  4. JavaScript substring()
  5. 《C++Primer》第五版习题答案--第三章【学习笔记】
  6. .Net Core - AgileHttp
  7. Java爬虫一键爬取结果并保存为Excel
  8. C#实现EXCEL表格转DataTable
  9. Java StringBuilder类
  10. python的range()