用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

创建连接

2017-08-16 作者: 举报

[java]代码库

package Util;
 
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
 
import org.apache.commons.dbcp.BasicDataSource;
 
public class DBUtil {
     
    private static BasicDataSource ds;
     
    static {
        Properties p = new Properties();
        try {
            //读取参数
            p.load(DBUtil.class.getClassLoader()
                .getResourceAsStream("db.properties"));
            String driver = p.getProperty("driver");
            String url = p.getProperty("url");
            String user = p.getProperty("user");
            String pwd = p.getProperty("pwd");
            String initsize = p.getProperty("initsize");
            String maxsize = p.getProperty("maxsize");
            //创建连接池
            ds = new BasicDataSource();
            //设置参数
            ds.setDriverClassName(driver);
            ds.setUrl(url);
            ds.setUsername(user);
            ds.setPassword(pwd);
            ds.setInitialSize(new Integer(initsize));
            ds.setMaxActive(new Integer(maxsize));
        } catch (IOException e) {
            e.printStackTrace();
            throw new RuntimeException(
                "加载配置文件失败.", e);
        }
    }
     
    /**
     * 本方法是采用BasicDataSource创建的连接,
     * 则Connection接口是由DBCP实现的,而并非
     * 由Oracle实现.当然DBCP的实现类中会调用
     * Oracle的驱动类.
     */
    public static Connection getConnection()
        throws SQLException {
        return ds.getConnection();
    }
     
    /**
     * 由DBCP所提供的连接对象的实现类,
     * 其close方法的逻辑不是关闭连接,
     * 而是归还连接,即它会将连接内包含的
     * 数据清空,并且将连接的状态设置为空闲.
     * */
    public static void close(Connection conn) {
        if(conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
                throw new RuntimeException(
                    "关闭连接失败.", e);
            }
        }
    }
     
    public static void rollback(Connection conn) {
        if(conn != null) {
            try {
                conn.rollback();
            } catch (SQLException e) {
                e.printStackTrace();
                throw new RuntimeException(
                    "事务回滚失败.", e);
            }
        }
    }
     
    public static void main(String[] args)
        throws SQLException {
        Connection conn =
            DBUtil.getConnection();
        System.out.println(conn);
        DBUtil.close(conn);
    }
 
}


网友评论    (发表评论)

共2 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...