一个比较实用的JDBC连接类

ConnectionFactory类

程序代码 程序代码


package com.zb.test;

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

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class ConnectionFactory {
    private static String driver;
    private static String dburl;
    private static String user;
    private static String password;
    private static String datasource;
    private Connection conn;
    private static final ConnectionFactory factory = new ConnectionFactory();
    private static final Log log = LogFactory.getLog(ConnectionFactory.class);
 
    static {
        Properties prop = new Properties();
        try {
            InputStream in = ConnectionFactory.class.getClassLoader().getResourceAsStream("dbconfig.properties");
            prop.load(in);
        } catch (Exception e) {
            System.out.println("IO�ERROR,dbconfig.properties!");
        }
        datasource = prop.getProperty("datasource", "");
        driver = prop.getProperty("driver");
        dburl = prop.getProperty("dburl", "");
        user = prop.getProperty("user", "");
        password = prop.getProperty("password", "");
        datasource = prop.getProperty("datasource", "");
    }
 
    private ConnectionFactory() {
    }
 
    public static ConnectionFactory getInstance() {
        return factory;
    }
 
    /**
     * 数据库链接工厂
     *
     * @return connection
     */
    public Connection createConnection() {
        if (!"".equals(datasource)) {
            try {
                Context ctx = new InitialContext();
                DataSource ds = (DataSource) ctx.lookup(datasource);
                conn = ds.getConnection();
                return conn;
            } catch (NamingException e) {
                log.info("No found DataSource");
                e.printStackTrace();
            } catch (SQLException e) {
                log.info("get connection failure");
                e.printStackTrace();
            }
        } else {
            try {
                Class.forName(driver);
            } catch (ClassNotFoundException e) {
                log.info("loader Class ERROR or No found Class");
                e.printStackTrace();
            }
            try {
                conn = DriverManager.getConnection(dburl, user, password);
 
            } catch (SQLException e) {
                log.info("get connection failure");
                e.printStackTrace();
            }
        }
        return conn;
    }
}


配置文件内容:

程序代码 程序代码

############# oracle�########################
#配置驱动名称
driver= oracle.jdbc.driver.OracleDriver
#配置连接字符串
dburl=jdbc: oracle:thin:@amd02:1521:orcl
#配置用户名
user=school
#配置密码
password=school
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值