?? databaseaccess.java
字號:
package olts.data;
import java.sql.*;
public class DatabaseAccess {
protected final String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
protected final String source = "jdbc:odbc:";
protected Connection connection; // 為數據庫建立的連接
// 與特定數據庫的連接(會話)。在連接上下文中執行 SQL 語句并返回結果。
protected Statement statement; // 將執行的SQL語句
protected PreparedStatement prepared; // 將執行的預編譯SQL語句
/**
* 利用數據源名稱建立與數據庫的連接
* @param datasource 數據源名稱
* @throws SQLException
*/
public DatabaseAccess(String datasource) throws SQLException {
try {
// 查找用于JDBC驅動的類,這種查找可向驅動器管理器注冊該數據庫驅動程序
Class.forName(driver);
} catch (ClassNotFoundException exc) {
// 當沒有驅動程序時,應用程序無法繼續運行,故退出程序
exc.printStackTrace();
System.exit(1);
}
// 建立與指定數據庫的連接
connection = DriverManager.getConnection(this.source+datasource);
// 創建一個用于發送和執行簡單SQL語句的對象
statement = connection.createStatement();
}
/**
* 關閉數據庫的連接
* @throws SQLException
*/
public void close() throws SQLException {
// 關閉連接
if (prepared != null) prepared.close();
// 使上一次提交/回滾后進行的所有更改成為持久更改,并釋放此 Connection 對象當前持有的所有數據庫鎖
if (connection != null) connection.commit();
if (connection != null) connection.close();
}
/**
* 不帶參數簡單SQL查詢,支持一條SQL語句
* @param sql SQL查詢語句串
* @return 查詢結果集
* @throws SQLException
*/
public ResultSet query(String sql) throws SQLException {
ResultSet rs = statement.executeQuery(sql);
return rs;
}
/**
* 利用不帶參數的SQL語句執行數據庫更新操作
* @param sql sql語句
* @throws SQLException
*/
public void update(String sql) throws SQLException {
statement.executeUpdate(sql);
}
/**
* 以預編譯參數的SQL語句查詢與更新數據庫的方法
* @param sql sql語句
* @throws SQLException
*/
public void prepare(String sql) throws SQLException {
prepared = connection.prepareStatement(sql);
}
/**
* 執行已編譯好的SQL語句以完成數據庫查詢操作
* @return 查詢結果集
* @throws SQLException
*/
public ResultSet preparedQuery() throws SQLException {
ResultSet result = prepared.executeQuery();
return result;
}
/**
* 執行已編譯好的SQL語句以完成數據庫更新操作。
* @throws SQLException
*/
public void preparedUpdate() throws SQLException {
prepared.executeUpdate();
}
/**
* 使用重載方法的形式封裝設置預編譯SQL語句參數的過程
* @param index sql參數位置標簽
* @param value sql參數值
* @throws SQLException
*/
public void setParameter(int index, boolean value) throws SQLException {
// 將指定參數設置為給定 Java boolean 值。在將此值發送到數據庫時,驅動程序將它轉換成一個 SQL BIT 或 BOOLEAN 值
prepared.setBoolean(index, value);
}
public void setParameter(int index, byte value) throws SQLException {
prepared.setByte(index, value);
}
public void setParameter(int index, short value) throws SQLException {
prepared.setShort(index, value);
}
public void setParameter(int index, int value) throws SQLException {
prepared.setInt(index, value);
}
public void setParameter(int index, long value) throws SQLException {
prepared.setLong(index, value);
}
public void setParameter(int index, float value) throws SQLException {
prepared.setFloat(index, value);
}
public void setParameter(int index, double value) throws SQLException {
prepared.setDouble(index, value);
}
public void setParameter(int index, String value) throws SQLException {
prepared.setString(index, value);
}
public void setParameter(int index, byte[] value) throws SQLException {
prepared.setBytes(index, value);
}
public void setParameter(int index, Date value) throws SQLException {
prepared.setDate(index, value);
}
/**
* 使用給定對象設置指定參數的值
* @param index 同上重載方法
* @param value 同上重載方法
* @param targetSqlType 將發送給數據庫的 SQL 類型(定義于 java.sql.Types 中)
* @throws SQLException
*/
public void setParameter(int index, Object value, int targetSqlType)
throws SQLException {
prepared.setObject(index, value, targetSqlType);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -