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;
}
}