• 三种连接池连接数据库


    package util;
    
    import java.beans.PropertyVetoException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.util.Properties;
    
    import javax.sql.DataSource;
    
    import org.apache.commons.dbcp2.BasicDataSource;
    
    import com.alibaba.druid.pool.DruidDataSource;
    import com.mchange.v2.c3p0.ComboPooledDataSource;
    
    public class DBUtil2 {
        //key,value都是String类型的map
        private static Properties p = new Properties();
        
        static {
            //通过当前线程获取一个类加载器,然后通过这个类加载器加载配置文件到流里面
            //默认以src为根路径
            InputStream is = Thread.currentThread().getContextClassLoader().getResourceAsStream("jdbc.properties");
            //properties通过加载流的方式进行初始化
            try {
                p.load(is);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        
        /**
         *  获取连接
         * @return
         * @throws PropertyVetoException 
         */
        public static Connection getConn() {
            try {
                //加载驱动
                Class.forName(p.getProperty("jdbc.driver"));
            } catch (ClassNotFoundException cnfe) {
                System.out.println("Error loading driver: " + cnfe);
            }
            Connection conn = null;
            try {
                //数据源是一个名为:DataSource的接口,我们要说的就是这个接口的三种实现方式
                /*
                 * 1.c3p0连接池创建数据源的方式
                 */
    //            ComboPooledDataSource cpds = new ComboPooledDataSource();//向上造型
    //            cpds.setDriverClass("oracle.jdbc.OracleDriver");
    //            cpds.setJdbcUrl("jdbc:oracle:thin:@127.0.0.1:1521:orcl");
    //            cpds.setUser("scott");
    //            cpds.setPassword("Oracle11g");
    //            //cpds.setMaxPoolSize(5);
    //            conn = cpds.getConnection();
                
                /*
                 * 2.dbcp连接池创建数据源的方法
                 */
    //            BasicDataSource bds = new BasicDataSource();
    //            bds.setDriverClassName("oracle.jdbc.OracleDriver");
    //            bds.setUrl("jdbc:oracle:thin:@127.0.0.1:1521:orcl");
    //            bds.setUsername("scott");
    //            bds.setPassword("Oracle11g");
    //            conn = bds.getConnection();
                
                /*
                 * 3.druid连接池创建数据源的方法
                 */
                DruidDataSource dds = new DruidDataSource();
                dds.setDriverClassName("oracle.jdbc.OracleDriver");
                dds.setUrl("jdbc:oracle:thin:@127.0.0.1:1521:orcl");
                dds.setUsername("scott");
                dds.setPassword("Oracle11g");
                conn = dds.getConnection();
                
                //DriverManager工具类getConnection静态方法来获取连接Connection(代码已经和数据库建立起了连接)
    //            conn = DriverManager.getConnection(p.getProperty("jdbc.url"), p.getProperty("jdbc.username"), p.getProperty("jdbc.password"));
            } catch (SQLException e) {
                e.printStackTrace();
    //        } catch (PropertyVetoException e) {
    //            e.printStackTrace();
            }
            return conn;
        }
        /**
         * 鍏抽棴杩炴帴
         */
        public static void closeConn(Connection conn) {
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
  • 相关阅读:
    c# Exception 异常信息归整
    解决PKIX(PKIX path building failed) 问题 unable to find valid certification path to requested target
    java Thumbnails 加载网络图片,处理返回base64
    C# 解析 Json
    mysql 中文乱码解决方法
    .Net WinForm下配置Log4Net(总结不输出原因)
    uploadify 后台动态传参数
    C# rename方法重命名文件
    将Qt5.5 动态链接生成的exe及依赖dll打包方法
    远程桌面Default.rdp 中各个参数的含义(转)
  • 原文地址:https://www.cnblogs.com/qilin20/p/12550582.html
Copyright © 2020-2023  润新知