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

来源:互联网 发布:seo与sem有和区别 编辑:程序博客网 时间:2024/05/19 18:42

附图

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、
这里写图片描述

0 0
原创粉丝点击