最简单的数据库连接池(SQLlite)

其中prop是从xml文件中读取数据库配置参数

package com.airport.demo.util;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.LinkedList;
import java.util.Properties;

public class SQLlitePool {
   private static String driver=null;
    private static String url=null;
	public static  LinkedList<Connection> pool;
	private static int poolSize=15;
    static {
    	PropertiesLoad prop=new PropertiesLoad();
    	driver=prop.driver;
    	url=prop.url;
    	try {
			Class.forName(driver);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
    	pool=new LinkedList<Connection>();
    	for (int i = 0; i < poolSize; i++) {
			try {
				Connection con = DriverManager.getConnection(url);
				pool.addLast(con);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
    }
    public static Connection getConnection() {
    	if (pool.size()>0&&!(pool.getLast()==null)) {
    		Connection conn=pool.getLast();
    		pool.removeLast();
			return conn;
		}
    	try {
    		System.out.println("连接池中没有连接,已经自动创建连接");
    		try {
				Class.forName(driver);
			} catch (ClassNotFoundException e) {
				e.printStackTrace();
			}
			Connection con = DriverManager.getConnection(url);
			pool.addLast(con);
			return con;
		} catch (SQLException e) {
			e.printStackTrace();
		}
    	System.out.println("连接池获取连接错误");
		return null;
	}
    
    public static boolean freeConnection(Connection conn) {
    	if (pool.size()<SQLlitePool.poolSize&&pool.size()>0) {
    		pool.addLast(conn);
    		return true;
		}
		return false;
	}
    
    
}


猜你喜欢

转载自blog.csdn.net/qq_29048719/article/details/76169040