JDBC數據庫編程操作類(適用於MySQL)

package com.msit.Uitll;

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

/**
 * 數據庫幫助類 連接MySQL數據庫
 *
 * @author ruanj_000
 *
 */
public class SQLHelp {

      private static String dirverName = "com.mysql.jdbc.Driver";
      private static String url = "jdbc:mysql://127.0.0.1:3306/misidb";
      private static String user = "root";
      private static String password = "root";
      private static Connection connection = null;

 // 編寫靜態代碼塊(比構造函數加載更快),用來加載驅動類
 static {
  try {
   Class.forName(dirverName);
   // 創建連接對象

  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
 }

 /**
  * 獲得連接對象
  *
  * @return
  */
 public static Connection getConnection() {
  try {
   connection = DriverManager.getConnection(url, user, password);
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return connection;
 }

 /**
  * 用來執行 添加、刪除、修改的sql語句
  *
  * @param sql
  * @return 受影響的行數
  */
 public static int ExecuteNonQuery(String sql) {
  int num = 0;
  Connection conn = getConnection();
  Statement sta = null;
  try {
   sta = conn.createStatement();
  } catch (SQLException e) {
   e.printStackTrace();
  }
  try {
   num = sta.executeUpdate(sql);
  } catch (SQLException e) {
   e.printStackTrace();
  } finally {
   Close(null, sta, conn);
  }
  return num;
 }
 
 /**
  * 執行查詢語句方法
  * @param sql  數據查詢SQL腳本語言
  * @return  返回結果集
  */
 public static ResultSet ExecuteQuery(String sql){
  ResultSet rs=null;
  Connection con=getConnection();
  Statement sta=null;
  try {
   sta=con.createStatement();
  } catch (SQLException e) {
   e.printStackTrace();
  }
  try {
   rs=sta.executeQuery(sql);
  } catch (SQLException e) {
   e.printStackTrace();
  }
  finally{
   //Close(rs, sta, con);
  }
  return rs;
 }

 /**
  * 關閉資源的方法
  *
  * @param rs
  *            結果集
  * @param sta
  *            執行對象
  * @param conn
  *            連接對象
  */
 private static void Close(ResultSet rs, Statement sta, Connection conn) {
  if (rs != null) {
   try {
    rs.close();
   } catch (SQLException e) {
    System.out.println("數據結果集關閉異常..!");
    e.printStackTrace();
   }
  }
  if (sta != null) {
   try {
    sta.close();
   } catch (SQLException e) {
    System.out.println("執行對象關閉異常、、!");
    e.printStackTrace();
   }
  }
  if (conn != null) {
   try {
    conn.close();
   } catch (SQLException e) {
    System.out.println("數據連接關閉異常、、!");
    e.printStackTrace();
   }
  }
  rs=null; sta=null; conn=null;
 }
 
 /**
  * 執行預編譯sql語句的方法
  * @param sql
  * @param prgm
  * @return
  */
 public static int pstm(String sql,String prgm[]){
  int num=0;
  PreparedStatement pstm=null;
  try {
   pstm =getConnection().prepareStatement(sql);
   for (int i =1; i <= prgm.length; i++) {
    pstm.setString(i, prgm[i-1]);
   }
   num=pstm.executeUpdate();
   pstm.close();
   connection.close();
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return num;
 }
 

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章