1. 程式人生 > >java最方便的資料庫操作

java最方便的資料庫操作

connDB.properties

DB_CLASS_NAME=com.mysql.jdbc.Driver
DB_URL=jdbc:mysql://127.0.0.1:3306/webdb?user=root&password=root&useUnicode=true

DBConnection.java

package com.mingrisoft;

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

public class DBConnection {
	public Connection conn = null; // 宣告Connection物件的例項
	public Statement stmt = null; // 宣告Statement物件的例項
	public ResultSet rs = null; // 宣告ResultSet物件的例項
	private static String propFileName = "connDB.properties"; // 指定資原始檔儲存的位置
	private static Properties prop = new Properties(); // 建立並例項化Properties物件的例項
	private static String dbClassName = "com.mysql.jdbc.Driver"; // 定義儲存資料庫驅動的變數
	private static String dbUrl = "jdbc:mysql://127.0.0.1:3306/webdb?user=root&password=root&useUnicode=true";

	public DBConnection() { // 構造方法
		try { // 捕捉異常
			// 將Properties檔案讀取到InputStream物件中
			InputStream in = getClass().getResourceAsStream(propFileName);
			prop.load(in); // 通過輸入流物件載入Properties檔案
			dbClassName = prop.getProperty("DB_CLASS_NAME"); // 獲取資料庫驅動
			// 獲取連線的URL
			dbUrl = prop.getProperty("DB_URL", dbUrl);
		} catch (Exception e) {
			e.printStackTrace(); // 輸出異常資訊
		}
	}

	/**
	 * 功能:獲取連線的語句
	 * 
	 * @return
	 */
	public static Connection getConnection() {
		Connection conn = null;
		try { // 連線資料庫時可能發生異常因此需要捕捉該異常
			Class.forName(dbClassName).newInstance(); // 裝載資料庫驅動
			conn = DriverManager.getConnection(dbUrl); // 建立與資料庫URL中定義的資料庫的連線
		} catch (Exception ee) {
			ee.printStackTrace(); // 輸出異常資訊
		}
		if (conn == null) {
			System.err
					.println("警告: DbConnectionManager.getConnection() 獲得資料庫連結失敗.\r\n\r\n連結型別:"
							+ dbClassName + "\r\n連結位置:" + dbUrl); // 在控制檯上輸出提示資訊
		}
		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); // 輸出異常資訊
		}
	}
}

操作資料庫

DBConnection DBConn = new DBConnection();
Connection Conn = DBConn.getConnection();
Statement stmt = conn.createStatement();
ResultSet rs = null;
String Sql = "select * from Admin";		//查詢資料
rs = stmt.executeQuery(Sql);
String sql = "insert into";			//更新資料庫
stmt.executeUpdate(sql);