连接mysql数据库通用类

来源:互联网 发布:淘宝机锋市场怎么样 编辑:程序博客网 时间:2024/06/15 02:15

package net.hnspi.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Db {

 private static Db db = null;
 private static String driver = "com.mysql.jdbc.Driver";
 private static String url = "jdbc:mysql://localhost:3306/guestbook";
 private static String dbUser = "root";
 private static String password = "123";

 private Connection conn = null;
 private Statement stmt = null;
 private ResultSet rs = null;

 private Db() {

 }

 public static Db getDb() {
  if (null == db) {
   synchronized (Db.class) {
    if (null == db) {
     db = new Db();
    }
    return db;
   }
  } else {
   return db;
  }
 }

 public Connection getConnection() {
   try {
    Class.forName(driver);
    conn = DriverManager.getConnection(url, dbUser, password);
   } catch (ClassNotFoundException e) {
    e.printStackTrace();
   } catch (SQLException e) {
    e.printStackTrace();
   }
   return conn;
 }
 
 public Statement getStatement(Connection conn){
  try {
   stmt = conn.createStatement();
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return stmt;
 }
 
 public ResultSet getResultSet(Statement stmt, String sql){
  try {
   rs = stmt.executeQuery(sql);
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return rs;
 }
 
 public void free(ResultSet rs, Statement stmt, Connection conn){
  if(null != rs){
   try {
    rs.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }finally{
    rs = null;
   }
  }
  if(null != stmt){
   try {
    stmt.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }finally{
    stmt = null;
   }
  }
  if(null != conn){
   try {
    conn.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }finally{
    conn = null;
   }
  }
 }
}