Java web項目 在線網絡考試數據庫連接部分代碼

package com.wgh.core; //將該類保存到com.wgh.core包中

import java.io.InputStream; //導入java.io.InputStream類
import java.sql.*; //導入java.sql包中的所有類
import java.util.Properties; //導入java.util.Properties類

public class ConnDB {
	public Connection conn = null; // 聲明Connection對象的實例
	public Statement stmt = null; // 聲明Statement對象的實例
	public ResultSet rs = null; // 聲明ResultSet對象的實例
	private static String propFileName = "/com/connDB.properties"; // 指定資源文件保存的位置
	private static Properties prop = new Properties(); // 創建並實例化Properties對象的實例
	private static String dbClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";//定義保存數據庫驅動的變量
	private static String dbUrl = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_netExam";
	private static String dbUser = "sa";
	private static String dbPwd = "";
	public ConnDB() {	//定義構造方法
		try {			//捕捉異常
			//將Properties文件讀取到InputStream對象中
			InputStream in = getClass().getResourceAsStream(propFileName);
			prop.load(in); // 通過輸入流對象加載Properties文件
			dbClassName = prop.getProperty("DB_CLASS_NAME"); // 獲取數據庫驅動
			dbUrl = prop.getProperty("DB_URL", dbUrl);		//獲取URL
			dbUser = prop.getProperty("DB_USER", dbUser);	//獲取登錄用戶
			dbPwd = prop.getProperty("DB_PWD", dbPwd);		//獲取密碼
		} catch (Exception e) {
			e.printStackTrace(); // 輸出異常信息
		}
	}

	public static Connection getConnection() {
		Connection conn = null;
		try {
			Class.forName(dbClassName).newInstance();
			conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);
		} catch (Exception ee) {
			ee.printStackTrace();
		}
		if (conn == null) {
			System.err
					.println("警告: DbConnectionManager.getConnection() 獲得數據庫鏈接失敗.\r\n\r\n鏈接類型:"
							+ dbClassName
							+ "\r\n鏈接位置:"
							+ dbUrl
							+ "\r\n用戶/密碼"
							+ dbUser + "/" + dbPwd);
		}
		return conn;
	}

	/*
	 * 功能:執行查詢語句
	 */
	public ResultSet executeQuery(String sql) {
		try { // 捕捉異常
			conn = getConnection(); // 調用getConnection()方法構造Connection對象的一個實例conn
			stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
					ResultSet.CONCUR_READ_ONLY);
			rs = stmt.executeQuery(sql);
		} catch (SQLException ex) {
			System.err.println(ex.getMessage()); // 輸出異常信息
		}
		return rs; // 返回結果集對象
	}

	/*
	 * 功能:執行更新操作
	 */
	public int executeUpdate(String sql) {
		int result = 0; // 定義保存返回值的變量
		try { // 捕捉異常
			conn = getConnection(); // 調用getConnection()方法構造Connection對象的一個實例conn
			stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
					ResultSet.CONCUR_READ_ONLY);
			result = stmt.executeUpdate(sql); // 執行更新操作
		} catch (SQLException ex) {
			result = 0; // 將保存返回值的變量賦值爲0
		}
		return result; // 返回保存返回值的變量
	}

	/*
	 * 功能:關閉數據庫的連接
	 */
	public void close() {
		try { // 捕捉異常
			if (rs != null) { // 當ResultSet對象的實例rs不爲空時
				rs.close(); // 關閉ResultSet對象
			}
			if (stmt != null) { // 當Statement對象的實例stmt不爲空時
				stmt.close(); // 關閉Statement對象
			}
			if (conn != null) { // 當Connection對象的實例conn不爲空時
				conn.close(); // 關閉Connection對象
			}
		} catch (Exception e) {
			e.printStackTrace(System.err); // 輸出異常信息
		}
	}

}

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