scala mysql连接池_Java与Scala的两种简易版连接池

Java版简易版连接池:

import java.sql.Connection;

import java.sql.DriverManager;

import java.util.LinkedList;

/**

* 简易版的连接池

*/

public class ConnectionPool {

//静态的Connection

private static LinkedListconnections;

//加载驱动

static {

try {

Class.forName("com.mysql.jdbc.Driver");

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

//获取连接 多线程访问并发问题控制

public synchronized static Connection getConnectoin(){

try {

if (connections==null){

connections=new LinkedList();

for (int i =0;i<10;i++){

Connection conn=DriverManager.getConnection(

"jdbc:mysql://localhost:3306/spark",

"username",

"password"

);

connections.push(conn);

}

}

}catch (Exception e){

e.printStackTrace();

}

return connections.poll();

}

/**

* 还连接

* 返回连接

*/

public static void returnConnection(Connection conn){

connections.push(conn);

}

}

scala版简易版连接池:

object ConnectionPoolUtil {

/**

* 需要设置的连接池数据

*/

private val max=10//连接池总数

private val connectionNum=10//每次产生连接数

private val pool=new util.LinkedList[Connection]()

private var conNum=0//当前连接池已经产生的连接数

//获取连接

def getConnections(): Connection ={

//同步代码块

AnyRef.synchronized({

//加载驱动

for(i

val conn = DriverManager.getConnection(

"jdbc:mysql://localhost:3306/spark",

"username",

"password"

)

pool.push(conn)

conNum+=1

}

pool.poll()

})

}

//加载驱动

def GetConn(): Unit ={

//控制加载

if (conNum

Class.forName("com.mysql.jdbc.mysql.")

}else if(conNum>=max&&pool.isEmpty){

println("Jdbc Pool had no connection now,please wait a moments")

Thread.sleep(2000)

GetConn()

}

}

//还连接

def returnConn(conn:Connection): Unit ={

pool.push(conn)

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/563820.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查看mysql日志post_(转)MySQL 日志组提交

原文:https://jin-yang.github.io/post/mysql-group-commit.html组提交 (group commit) 是为了优化写日志时的刷磁盘问题&#xff0c;从最初只支持 InnoDB redo log 组提交&#xff0c;到 5.6 官方版本同时支持 redo log 和 binlog 组提交&#xff0c;大大提高了 MySQL 的事务处…

like语句太慢 sqlserver_SQLServer找出执行慢的SQL语句

SELECT(total_elapsed_time / execution_count)/1000 N平均时间ms,total_elapsed_time/1000 N总花费时间ms,total_worker_time/1000 N所用的CPU总时间ms,total_physical_reads N物理读取总次数,total_logical_reads/execution_count N每次逻辑读次数,total_logical_reads N逻辑…

mysql maxpreparedstmtcount_NodeJs Mysql Cant't create more than max_prepared_stmt_count statements

这阵子碰到一个数据库上的问题&#xff0c;一个刚上线不到一周的 NodeJs 接口服务里所有的查询全部都挂掉了&#xff0c;接口一直处于 pending 状态&#xff0c;看了下 pm2 的日志发现了报错&#xff1a;Cantt create more than max_prepared_stmt_count statements&#xff0c…

MySQL查询语句转postGRE语句_PostgreSQL DBA常用SQL查询语句

查看帮助命令DB# help --总的帮助DB# \h --SQL commands级的帮助DB# \? --psql commands级的帮助按列显示&#xff0c;类似MySQL的\GDB# \xExpanded display is on.查看DB安装目录(最好root用户执行)find / -name initdb查看有多少DB实例在运行(最好root用户执行)find / -name…

苹果cms10自适应模板_哪里有苹果cms10自适应模板?

1&#xff0c;苹果CMSv10大图轮播高端大气自适应视频网站模板源码苹果cms10自适应模板下载地址&#xff1a;https://www.mytheme.cn/maccms/54.html第一款大图宽屏的海报轮播幻灯样式&#xff0c;宽屏模板支持DIY扩展自适应影视模板苹果cms10自适应模板苹果cms10自适应模板2&am…

python实现进程通信_python进程间的通讯实现

1&#xff1a;进程间通讯的方法&#xff1a;apply_async()非阻塞式通讯 apply()阻塞式通讯2&#xff1a;使用Queue实现对Process创建的进程间通讯&#xff0c;Queue本身是一个消息队列程序&#xff0c;Queue常用方法&#xff1a;Queue.qsize():返回当前消息队列的消息数量Q…

yum mysql 版本低_mysql小版本升级(yum方式)

5.7.21 --> 5.7.231. 数据库备份(略)2. mysql配置文件备份cp /etc/my.cnf /etc/my.cnf.bak3. yum配置mysql源3.1安装mysql57-community-release-el6-8.noarch.rpm之类的东西rpm -ivh mysql57-community-release-el6-8.noarch.rpm3.2 查看mysql的repovim /etc/yum.repos…

mysql definer设置为root_mysql如何修改所有的definer

mysql中的definer是什么&#xff0c;有什么作用&#xff1f;我们在mysql创建view、trigger、function、procedure、event时都会定义一个Definer‘xxx’,类似如下&#xff1a;CREATEALGORITHMUNDEFINEDDEFINER root% SQL SECURITY DEFINERVIEW v_ questions ASSELECTq.idASid,q.…

vscode php formatter mac配置_Mac上配置Vs code时,遇到的几个“坑”!

在写一些简单的程序时&#xff0c;你喜欢用什么编译器呢&#xff1f;之前我一直用的是sublime&#xff0c;它打开的速度快&#xff0c;占用的内存小。但是有个麻烦的地方&#xff0c;配置的时候要花一些时间&#xff0c;如果你的网不好还时不时给你来个timeout。最近在Youtube上…

java 创建mysql表_MySQL 创建数据表

MySQL 创建数据表创建MySQL数据表需要以下信息&#xff1a;表名表字段名定义每个表字段语法以下为创建MySQL数据表的SQL通用语法&#xff1a;CREATE TABLE table_name (column_name column_type);以下例子中我们将在 W3CSCHOOL 数据库中创建数据表w3cschool_tbl&#xff1a;tut…

python内置对象是什么_#【Python】【基础知识】【内置对象常用方法】

数字的常用方法&#xff1a;>>> dir(int)[‘__abs__‘, ‘__add__‘, ‘__and__‘, ‘__bool__‘, ‘__ceil__‘, ‘__class__‘, ‘__delattr__‘, ‘__dir__‘, ‘__divmod__‘, ‘__doc__‘, ‘__eq__‘, ‘__float__‘, ‘__floor__‘, ‘__floordiv__‘, ‘__for…

模为2的逆元是什么_两种求模m逆元的方法

在a|b(a能整除b)的前提下&#xff0c;计算(b/a)mod m的时候转化为 计算(b*x)mod m ; 这时的x就是a的逆元(a模m的逆元)&#xff1b;此时x满足 (a*x mod m 1)&#xff1b; 这个x的求法有一下两种&#xff1a;1)扩展欧几里得算法求解 a*xm*y1; 因为 a*x mod m 1 <> a…

java值栈_Struts2 中的值栈是什么?

7.1值栈7.1.1值栈是什么简单的说&#xff1a;值栈是对应每一个请求对象的轻量级的内存数据中心。Struts2中一个很激动人心的特性就是引入了值栈&#xff0c;在这里统一管理着数据&#xff0c;供Action、Result、Interceptor等Struts2的其他部分使用&#xff0c;这样一来&#x…

java try的用法_Java中try、catch的使用方法

Java中有两种处理异常的方式&#xff0c;分别是用throws抛出异常、用try、catch捕获异常。try-catch在Javatry-catch语句的语法格式&#xff1a;try{//代码块}catch(Exception1 e){//抛出异常后所要进行的操作}当try语句当中捕获到异常时&#xff0c;会将异常抛出到catch语句中…

java android上传文件_Java-Android-如何将txt文件上传到网站?

我想将txt文件上传到网站,我承认我没有对其进行任何详细的研究,但是我看了一些示例,并希望就我是否朝着正确的方向提出更多的经验性意见. .这是我到目前为止的内容&#xff1a;DefaultHttpClient httpClient new DefaultHttpClient();HttpContext localContext new BasicHttp…

java授查 非授查异常_java检查异常与非检查异常

Java的可检测异常和非检测异常泾渭分明。可检测异常经编译器验证&#xff0c;对于声明抛出异常的任何方法&#xff0c;编译器将强制执行处理或声明规则。非检测异常不遵循处理或声明规则。在产生此类异常时&#xff0c;不一定非要采取任何适当操作&#xff0c;编译器不会检查是…

java not a jpeg file_javax.imageio.IIOException: Not a JPEG file: starts with 0x47 0x49

java处理图片时出现异常javax.imageio.IIOException: Not a JPEG file: starts with 0x47 0x49at com.sun.imageio.plugins.jpeg.JPEGImageReader.readImageHeader(Native Method)at com.sun.imageio.plugins.jpeg.JPEGImageReader.readNativeHeader(Unknown Source)at com.sun…

java if用法_java中if语句的写法

if语句if 语句的语法如下&#xff1a;if(布尔表达式){//如果布尔表达式为true将执行的语句}如果布尔表达式的值为 true&#xff0c;则执行 if 语句中的代码块&#xff0c;否则执行 if 语句块后面的代码。免费视频教程推荐&#xff1a;java视频教程if...else语句if 语句后面可以…

java子类和父类实例_java中父类与子类之间的转换示例

java中父类与子类之间的转换示例有以下三点&#xff1a;示例一父类强制转子类pre class"brush:php;toolbar:false">Father f new Son();Son s (Son)f;//可以创建一个父类的实例&#xff0c;想要强制把父类对象转换成子类的&#xff0c;不行&#xff01;通俗的想…

java 二进制 定义_在Java中,我可以用二进制格式定义一个整数常量吗?

所以&#xff0c;随着Java SE 7的发布&#xff0c;二进制符号标准开箱即用。语法是非常直接和明显的&#xff0c;如果你有一个良好的理解二进制&#xff1a;byte fourTimesThree 0b1100;byte data 0b0000110011;short number 0b111111111111111;int overflow 0b10101010101…