我是靠谱客的博主 清秀柠檬,最近开发中收集的这篇文章主要介绍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)

}

}

最后

以上就是清秀柠檬为你收集整理的scala mysql连接池_Java与Scala的两种简易版连接池的全部内容,希望文章能够帮你解决scala mysql连接池_Java与Scala的两种简易版连接池所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部