Spring学习笔记(八):数据库连接池的小例子

附图

1、
Spring学习笔记(八):数据库连接池的小例子_第1张图片
2、

3、下面是某教学上的小例子:

编写一个基本的连接池,来实现连接的复用;思路:
1)在内存中创建一个集合,包含多条连接
2)获取连接时,直接从集合中获取集合对象
3)关闭连接时,将不用的集合对象再放入集合中
4)遵循先入先出的原则

public class MyDataSource
{
    static
    {
        try
        {
            Class.forName("com.mysql.jdbc.Driver"); 
        }
        catch(classNotFoundException e)
        {
            throw new ExceptionInitializerError(e);
        }
    }
    private static String url="jdbc:mysql://localhost:3306/test";
    private static String user="root";
    private static String password="root";

    private LinkedList<Connection> pool=new LinkedList<Connection>();

    public MyDataSource()
    {
        try
        {
            for(int i=0;i<10;i++)
            pool.addLast(this.createConnection());
        }
        catch(SQLException e)
        {
            throw new ExceptionInitializerError(e);
        }
    }
    public Connection getConnection()
    {
        return pool.removeFirst();
    }
    public void closeConnection(Connection conn)
    {
        pool.addLast(conn);
    }
    public Connection createConnection()
    {
        return DriverManager.getConnection(url,user,password);
    }
}

public class MyDataSourceExperiment
{
    public static void main(String[] args)
    {
        MyDataSource ds=new MyDataSource();
        //取10个连接,看看是否是同一个连接
        for(int i=0;i<10;i++)
        {
            Connection conn=ds.getConnection();
            System.out.println(conn);
            ds.close(conn);//关闭连接
        }
    }
}

4、
Spring学习笔记(八):数据库连接池的小例子_第2张图片

你可能感兴趣的:(Spring学习笔记(八):数据库连接池的小例子)