Copy kode kodenya sebagai berikut:
paket com.groundhog.codingmouse;
impor java.sql.Koneksi;
impor java.sql.DriverManager;
impor java.sql.PreparedStatement;
impor java.sql.ResultSet;
impor java.sql.SQLException;
/**
* Kelas manajemen basis data
* @penulis CodingMouse
*2009.2.20
*/
DBManager kelas akhir publik {
/**
* Objek koneksi database
*/
Koneksi pribadi dbConnection = null;
/**
* Objek eksekusi perintah database
*/
pernyataan pribadi PreparedStatement = null;
/**
* Objek kumpulan hasil
*/
ResultSet pribadi rsSet = null;
/**
* Nomor versi driver basis data
*/
private static String driverVersion = null;
/**
* Konstanta string nama pengguna dan kata sandi login server database (nilai defaultnya adalah 'sa')
*/
database String statis pribadiUser = "sa";
database String statis pribadiPassword = "sa";
/**
* Database driver nama kelas lengkap string konstan
*/
String akhir statis pribadi
DRIVER_CLASS_SQLSERVER2000 =
"com.microsoft.jdbc.sqlserver.SQLServerDriver"; // SQL
Koneksi langsung Server 2000
String akhir statis pribadi
DRIVER_CLASS_SQLSERVER2005 =
"com.microsoft.sqlserver.jdbc.SQLServerDriver"; // SQL
Sambungan Langsung Server 2005
String akhir statis pribadi
DRIVER_CLASS_BRIDGECONNECT = "sun.jdbc.odbc.JdbcOdbcDriver";
// Koneksi jembatan ODBC
/**
* Konstanta string koneksi database
*/
String akhir statis pribadi
DATABASE_URL_SQLSERVER2000 =
"jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=stuD
B"; // koneksi langsung SQL Server 2000
String akhir statis pribadi
DATABASE_URL_SQLSERVER2005 =
"jdbc:sqlserver://127.0.0.1:1433;NamaDatabase=stuDB";
// Koneksi langsung SQL Server 2005
String akhir statis pribadi
DATABASE_URL_BRIDGECONNECT = "jdbc:odbc:stuDBSource";
// Koneksi jembatan ODBC
/**
* Tentukan variabel statis instance dari kelas itu sendiri (berlaku untuk aplikasi mode [ware] tunggal)
*/
private static DBManager connectionManager = null;
/**
* Konstruksi default yang diprivatisasi (berlaku untuk aplikasi mode [ware] tunggal untuk mencegah kelas dipakai secara langsung menggunakan kata kunci baru)
*/
manajerDB pribadi() {
super();
}
/**
* Metode untuk mendapatkan contoh kelas manajemen koneksi database (penerapan mode singleton [ware])
* @param version Nomor versi driver database, nilai: (versi =
2000 |. versi = 2005 |. versi = odbc)
* Nama pengguna login server database pengguna @param
* Kata sandi login server basis data kata sandi @param
* @return objek manajemen koneksi database
* @throws Pengecualian Parameter kesalahan pengecualian
*/
getInstance DBManager statis publik(
Versi tali,
Pengguna tali,
kata sandi string)
melempar Pengecualian {
if (!(versi == "2000" || versi == "2005"
||.versi == "odbc")) {
throw new Exception("Nomor versi driver database salah, nilainya hanya "2000/2005/odbc"!");
}
//Simpan nomor versi driver database
driverVersion = versi;
if (pengguna == null || pengguna.sama dengan("")) {
throw new Exception("Nama pengguna login server database tidak boleh kosong!");
}
//Simpan nama pengguna dan kata sandi login server database
databaseUser = pengguna;
databasePassword = kata sandi;
// Terapkan pola singleton [ware] untuk memastikan bahwa kelas itu sendiri hanya memiliki satu instance
jika (manajer koneksi == nol) {
connectionManager = DBManager baru();
}
// Mengembalikan instance dari kelas itu sendiri
kembalikan manajer koneksi;
}
/**
* Metode untuk mendapatkan koneksi database
* @return objek koneksi database
*/
Koneksi pribadi getConnection() {
mencoba {
Kelas.untukNama(
Versi driver ==
"2000"
?
DRIVER_CLASS_SQLSERVER2000
: (Versi driver ==
"2005"
?
DRIVER_CLASS_SQLSERVER2005
:
DRIVER_CLASS_BRIDGECONNECT));
ini.dbConnection =
DriverManager.getConnection(
Versi driver ==
"2000"
?
DATABASE_URL_SQLSERVER2000
: (Versi driver ==
"2005"
?
DATABASE_URL_SQLSERVER2005
:
DATABASE_URL_BRIDGECONNECT),
pengguna basis data,
kata sandi basis data);
} tangkapan (Contoh ClassNotFoundException) {
System.err.println("SQL Server tidak ditemukan
" + driverVersion + "Kelas driver basis data: " + ex.getMessage());
//Keluarkan informasi tumpukan pengecualian di konsol
// ex.printStackTrace();
} catch (Pengecualian misalnya) {
System.err.println("Dapatkan kesalahan koneksi database: " + ex.getMessage());
//Keluarkan informasi tumpukan pengecualian di konsol
// ex.printStackTrace();
}
// Mengembalikan objek koneksi database
kembalikan this.dbConnection;
}
/**
* Metode untuk mendapatkan objek eksekusi perintah database
* @param sql string pernyataan perakitan perintah SQL yang akan dieksekusi
* @return objek eksekusi perintah database
*/
pribadi PreparedStatement getPreparedStatement
(String sql) {
mencoba {
//Membuat objek eksekusi perintah database berdasarkan objek koneksi database yang diperoleh
this.preStatement = getConnection
().prepareStatement(sql);
} catch (Pengecualian misalnya) {
System.err.println("Kesalahan dalam memperoleh objek eksekusi perintah database: " + ex.getMessage());
//Keluarkan informasi tumpukan pengecualian di konsol
// ex.printStackTrace();
}
// Mengembalikan objek eksekusi perintah database
kembalikan this.preStatement;
}
/**
* Jalankan pernyataan pembaruan (Sisipkan|Perbarui|Hapus)
* @param sql string pernyataan perakitan perintah SQL yang akan dieksekusi
* @mengembalikan jumlah baris yang terpengaruh
*/
publik int mengeksekusiUpdate(String sql){
mencoba {
// Kosongkan konten asli dari objek kumpulan hasil
this.rsSet = null;
//Jalankan pernyataan dan kembalikan jumlah baris yang terpengaruh
kembalikan this.getPreparedStatement
(sql).executeUpdate();
} tangkapan (SQLException e) {
System.err.println("Kesalahan saat memperbarui data:" +
e.getMessage());
kembali 0;
}Akhirnya{
//Tutup sumber koneksi database
closeDBResource();
}
}
/**
* Jalankan pernyataan query (Pilih)
* @param sql string pernyataan perakitan perintah SQL yang akan dieksekusi
* @mengembalikan objek kumpulan hasil setelah kueri
*/
publik ResultSet mengeksekusiQuery(String sql){
mencoba {
// Kosongkan konten asli dari objek kumpulan hasil
this.rsSet = null;
//Jalankan pernyataan sql untuk mendapatkan kumpulan hasil
ini.rsSet =
ini.getPreparedStatement(sql).executeQuery();
} tangkapan (SQLException e) {
System.err.println("Kesalahan data kueri:" +
e.getMessage());
}
// Mengembalikan objek kumpulan hasil
kembalikan ini.rsSet;
}
/**
* Dapatkan jumlah catatan dalam kumpulan hasil yang dikembalikan setelah menjalankan pernyataan SQL yang ditentukan
* @param sql string pernyataan perakitan perintah SQL yang akan dieksekusi
* @return Jumlah record yang diperoleh dari hasil query
*/
publik int getResultSetCount(String sql) {
//Simpan variabel penghitung yang mengembalikan jumlah baris yang direkam setelah pernyataan SQL yang ditentukan dijalankan.
int hitungan = 0;
mencoba {
// Kosongkan konten asli dari objek kumpulan hasil
this.rsSet = null;
//Jalankan pernyataan sql untuk mendapatkan kumpulan hasil
this.rsSet = ini.getPreparedStatement
(sql).executeQuery();
// Ulangi kumpulan hasil dan kumpulkan penghitungnya
while (ini.rsSet.berikutnya()) {
hitung++;
}
} tangkapan (SQLException e) {
e.printStackTrace();
}
jumlah pengembalian;
}
/**
* Tutup sumber daya koneksi database (termasuk objek kumpulan hasil, objek eksekusi perintah, dan objek koneksi)
*/
kekosongan publik closeDBResource() {
mencoba {
closeResultSet();
closePreparedStatement();
tutupKoneksi();
} tangkapan (SQLException sqlEx) {
System.err.println(sqlEx.getMessage
());
//Keluarkan informasi tumpukan pengecualian di konsol
// sqlEx.printStackTrace();
}
}
/**
* Metode untuk menutup objek kumpulan hasil
* @melempar SQLException
*/
private void closeResultSet() melempar SQLException {
mencoba {
if (ini.rsSet != null) {
this.rsSet.close();
this.rsSet = null;
}
} tangkapan (SQLException sqlEx) {
throw new SQLException("Kesalahan menutup objek kumpulan hasil: " + sqlEx.getMessage());
//Keluarkan informasi tumpukan pengecualian di konsol
// sqlEx.printStackTrace();
}
}
/**
* Metode untuk menutup objek eksekusi perintah database
* @melempar SQLException
*/
lemparan private void closePreparedStatement()
SQLException {
mencoba {
if (ini.preStatement != null) {
this.preStatement.close();
this.preStatement = null;
}
} tangkapan (SQLException sqlEx) {
throw new SQLException("Tutup kesalahan objek eksekusi perintah database: " + sqlEx.getMessage());
//Keluarkan informasi tumpukan pengecualian di konsol
// sqlEx.printStackTrace();
}
}
/**
* Metode untuk menutup koneksi database
* @melempar SQLException
*/
private void closeConnection() melempar SQLException {
mencoba {
jika (ini.dbConnection != null && (!
ini.dbConnection.isClosed())) {
this.dbConnection.close();
}
} tangkapan (SQLException sqlEx) {
throw new SQLException("Kesalahan saat menutup koneksi database: " + sqlEx.getMessage());
//Keluarkan informasi tumpukan pengecualian di konsol
// sqlEx.printStackTrace();
}
}
}