JDBC连接(单例模式)

package cn.itcast.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
//单例模式
public final class DBFactorySingle
{
 private  String url = "jdbc:mysql://localhost:3306/jdbc";
 private  String user = "root";
 private  String password = "123456";

// 预实例化,进来时就被实例化了
// private static DBFactorySingle instance = new DBFactorySingle();
 
// 延迟加载,用的时候再实例化
 private static DBFactorySingle instance = null;
 // 为了不让别人去new所以定义成私有的
 private DBFactorySingle()
 {

 }

 // 把注册驱动放在静态代码块中,保证,整个过程中只执行一次
 static
 {
  try
  {
   // 1、注册驱动
   Class.forName("com.mysql.jdbc.Driver");
  } catch (ClassNotFoundException e)
  {
   // 抛出异常,为了让后边出错时,程序员知道是哪出错了
   throw new ExceptionInInitializerError(e);
  }
 }

 public static DBFactorySingle getInstance(){
//  return instance;//对应与实例化
  if(instance==null)
  {
   synchronized(DBFactorySingle.class){//加锁
    if(instance==null)//双重检查
    {
    instance =  new DBFactorySingle();
    }
   }
   
  }
  return instance;//对应延迟加载
 }
 // 返回一个Connection连接
 public  Connection getConnection() throws SQLException
 {
  return DriverManager.getConnection(url, user, password);
 }
// 释放连接资源
 public  void free(Connection conn, Statement stmt, ResultSet rs)
 {
  try
  {
   if (rs != null)
    rs.close();
  } catch (SQLException e)
  {
   e.printStackTrace();
  } finally
  {
   try
   {
    if (stmt != null)
     stmt.close();
   } catch (SQLException e)
   {
    e.printStackTrace();
   } finally
   {
    try
    {
     if (conn != null)
      conn.close();
    } catch (SQLException e)
    {
     e.printStackTrace();
    }
   }
  }
 }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值