• 连接池 ----单例模式


    //数据库连接池  单例模式  
    
    import java.sql.Connection;  
    
    import java.sql.SQLException;  
    
    import com.mchange.v2.c3p0.ComboPooledDataSource;  
    
    import com.mchange.v2.c3p0.DataSources;  
    
    public class ComboPooledDataSourceDemo 
    {
            private static ComboPooledDataSourceDemo instance;  
    
            private ComboPooledDataSource ds;  
    
            private ComboPooledDataSourceDemo() throws Exception
            {  
                ds = new ComboPooledDataSource();  
    
                ds.setDriverClass("oracle.jdbc.driver.OracleDriver");  //驱动
    
                ds.setJdbcUrl("jdbc:oracle:thin:@localhost:1521:orcl");  //地址
    
                ds.setUser("test0816");  //数据库用户名
    
                ds.setPassword("934617699");  //数据库用户密码
    
                //初始化时获取三个连接,取值应在minPoolSize与maxPoolSize之间。Default: 5 initialPoolSize  
    
                ds.setInitialPoolSize(5);  
    
                //连接池中保留的最大连接数。Default:  20 maxPoolSize  
    
                ds.setMaxPoolSize(20);  
    
                //// 连接池中保留的最小连接数。  
    
                //ds.setMinPoolSize(1);  
    
                //当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 5 acquireIncrement    
    
                ds.setAcquireIncrement(10);  
         //用来返回该对象
            public  static  final ComboPooledDataSourceDemo getInstance() {  
    
                if (instance == null) {  
    
                    try {  
    
                        instance = new ComboPooledDataSourceDemo();  
    
                    } catch (Exception e) {  
    
                        e.printStackTrace();  
    
                    }  
    
                }  
    
                return instance;  
    
            }  
    
          
                //返回一个连接
            public synchronized   final Connection getConnection() {  
    
                try {  
    
                    return ds.getConnection();  
    
                } catch (SQLException e) {  
    
                    e.printStackTrace();  
    
                }  
    
                return null;  
    
            }  
    }
    package com.phone.shuyinghengxie;
    
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    
    import org.junit.Test;
    
    public class ComboPooledDataSourceDemoTest1 {
    
        public static void main(String[] args)
        {
            ComboPooledDataSourceDemo  cp = ComboPooledDataSourceDemo.getInstance() ;
            
            
                List<Person> list = new ArrayList<>() ;
                
                
                
                cp.getConnection() ;
                
                String sql = "select * from person " ;
                
                try {
                    PreparedStatement  pt = cp.getConnection().prepareStatement(sql) ;
                    
                    ResultSet rt = pt.executeQuery() ;
                    
                    while(rt.next())
                    {
                        Person p = new Person();
                        
                        p.setName(rt.getString("name"));
                        p.setAge(rt.getString("age"));
                        p.setSex(rt.getString("sex"));
                        p.setTelNum(rt.getString("telNum"));
                        p.setAddress(rt.getString("address"));
                        
                        list.add(p) ;
                                
                    }
                    
                    for(Person p : list)
                    {
                        System.out.println(p);
                    }
                    
                    System.out.println("哈哈");
                } catch (SQLException e) {
                    // TODO 自动生成的 catch 块
                    e.printStackTrace();
                }
            }
    
    
        }
    
    }
  • 相关阅读:
    结对作业
    小学算术题四则运算(升级)
    自动生成小学四则运算题目(Python实现)
    《基于CMMI的软件工程及实训指导》第一章 软件工程基础
    使用 python 进行微信好友分析
    中国大学排名
    python小程序测试
    爬虫测试
    体育竞技分析

  • 原文地址:https://www.cnblogs.com/20gg-com/p/5997837.html
Copyright © 2020-2023  润新知