java jdbc數據庫連接

johon 13年前發布 | 1K 次閱讀 云計算 Snowbox Chromebook Evince

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class JDBConnection { public Connection conn = null; // 聲明Connection對象的實例 public Statement stmt = null; // 聲明Statement對象的實例 public ResultSet rs = null; // 聲明ResultSet對象的實例

private static String dbClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";//定義保存數據庫驅動的變量
private static String dbUrl = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=DB_ATM";
private static String dbUser = "sa";
private static String dbPwd = "sa";

public JDBConnection(String propertyFileName) {// 帶屬性文件名的構造方法
    Properties prop = new Properties();// 屬性集合對象
    InputStream is = null;
    try {
        is = JDBConnection.class.getClassLoader().getResourceAsStream(
                propertyFileName);// 屬性文件輸入流
        // is = new FileInputStream("src/" + propertyFileName);
        prop.load(is);// 將屬性文件流裝載到Properties對象中
        is.close();// 關閉流
        dbClassName = prop.getProperty("dbClassName");
        dbUrl = prop.getProperty("dbUrl");
        dbUser = prop.getProperty("dbUser");
        dbPwd = prop.getProperty("dbPwd");
    } catch (Exception e) {
        System.out.println("屬性文件  " + propertyFileName + " 打開失敗!");
    }
    try {

        Class.forName(dbClassName);// 1.注冊驅動
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
}

public JDBConnection() {// 默認的不帶參數的構造函數
    try {

        Class.forName(dbClassName);// 1.注冊驅動
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
}

public static Connection getConnection() {
    Connection conn = null;
    try {
        // Class.forName(dbClassName);// 1.注冊驅動
        conn = DriverManager.getConnection(dbUrl, dbUser, dbPwd);//2.建立與數據庫的鏈接
    } 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,//3.創建語句
                ResultSet.CONCUR_READ_ONLY);
        rs = stmt.executeQuery(sql);//4.執行查詢
    } catch (SQLException ex) {
        System.err.println(ex.getMessage()); // 輸出異常信息
    }
    return rs; // 返回結果集對象 5.結果處理
}

/*
 * 功能:執行更新操作
 */
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() {//6.釋放資源
    try { // 捕捉異常
        try {
            if (rs != null) { // 當ResultSet對象的實例rs不為空時
                rs.close(); // 關閉ResultSet對象
            }
        } finally {
            try {
                if (stmt != null) { // 當Statement對象的實例stmt不為空時
                    stmt.close(); // 關閉Statement對象
                }
            } finally {
                if (conn != null) { // 當Connection對象的實例conn不為空時
                    conn.close(); // 關閉Connection對象
                }
            }
        }
    } catch (Exception e) {
        e.printStackTrace(System.err); // 輸出異常信息
    }
}

}</pre>屬性文件
dbClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver
dbClassName2=com.mysql.jdbc.Driver
dbPwd=sa
dbPwd2=root
dbUrl=jdbc\:microsoft\:sqlserver\://localhost\:1433;DatabaseName\=DB_ATM
dbUrl2=jdbc\:mysql\://localhost\:3306/db_atm
dbUser=sa
dbUser2=root

 本文由用戶 johon 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!