wittyResry / myIssue

My issue mark down^_^ 欢迎吐槽,讨论~~
https://github.com/wittyResry/myIssue/issues
The Unlicense
5 stars 1 forks source link

Mysql数据库连接池 #100

Open wittyResry opened 5 years ago

wittyResry commented 5 years ago

JAVA应用程序访问数据库的过程: 1) 装载数据库驱动程序; 2) 通过JDBC建立数据库连接; 3) 访问数据库,执行SQL语句; 4) 断开数据库连接; 使用了数据库连接池的机制: 1) 程序初始化时创建连接池; 2) 使用时向数据库申请可用连接; 3) 使用完毕,将连接返回给连接池; 4) 程序退出时,断开所有连接,并释放资源;

数据库初始化创建一定数量的连接池(最小连接数),无论数据库连接是否被使用,连接池将一直保持至少这么多的连接数,连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数。超过最大连接的请求,将被加入等待队列。

1.并发问题 为了使连接池管理服务具有最大的通用性,必须考虑多线程环境,这个问题相对于好解决,因为各个语言自身提供了对于并发管理的支持,可以保证线程的同步。

  1. 事务处理 DB连接池必须要确保某一时间内一个connection只能分配给一个线程。不同conection的事务是相互独立的。两个线程都在进行事务操作,Connection虽然提供了事务支持,但是不能确定数据库对应事务