Ada banyak cara untuk menyambung ke database SQL Server2000 menggunakan Java. Berikut ini adalah dua metode yang paling umum digunakan (menghubungkan ke database melalui driver JDBC).
1. Hubungkan melalui driver JDBC Microsoft. Driver JDBC ini memiliki tiga file yaitu mssqlserver.jar, msutil.jar dan msbase.jar yang dapat diunduh dari website Microsoft (://www.microsoft.com/downloads/details.aspx?FamilyId=07287B11-0502 -461A -B138-2AA54BFDC03A&displaylang=en), jika Anda mengunduh setup.exe, Anda juga perlu menginstalnya. Setelah instalasi, ketiga file jar di atas akan dibuat. Driver JDBC ini mengimplementasikan JDBC 2.0.
Nama driver: com.microsoft.jdbc.sqlserver.SQLServerDriver (yaitu classforname di bawah)
URL koneksi basis data: jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname (yaitu url berikut)
2. Hubungkan ke database SQL Server melalui Driver JTDS JDBC. Nama file driver ini adalah jtds-1.2.jar, dan jalur downloadnya adalah ( http://sourceforge.net/project/showfiles.php?group_id=33291 ). Driver ini mendukung Microsoft SQL Server (6.5, 7.0, 2000 dan 2005) dan Sybase, dan mengimplementasikan JDBC3.0, gratis.
Nama driver: net.sourceforge.jtds.jdbc.Driver (yaitu classforname di bawah)
URL koneksi database: jdbc:jtds:sqlserver://localhost:1433/dbname (yaitu url berikut)
Ada banyak kode Bean untuk JDBC untuk terhubung ke database SQL Server di Internet. Berikut adalah kutipan dari sebagiannya: (Silakan ubah localhost dan 1433 ke alamat server SQL Server dan nomor port di aplikasi Anda yang sebenarnya, dan ubah. dbname ke nama database Anda yang sebenarnya)
impor java.sql.*;
DatabaseConn kelas publik {
koneksi Koneksi pribadi;
stmt Pernyataan pribadi;
pribadi String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname";
pribadi String classforname = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
pribadi String uid = "sa";
pribadi String pwd = "kata sandi";
DatabaseConn publik(){}
/**
* <p>Dapatkan koneksi database melalui driver Microsoft JDBC</p>
* @koneksi kembali
* @pengecualian ClassNotFoundException, SQLException
*/
Koneksi publik getConnection()
{
mencoba
{
Kelas.forName(classforname);
if (sambungan == null || sambungan.isClosed())
samb = DriverManager.getConnection(url, uid, pwd);
}
tangkapan (Contoh ClassNotFoundException)
menangkap (SQLException ex)
koneksi kembali;
}
}
Tentu saja, sebelum melakukan pekerjaan di atas, Anda harus memeriksa terlebih dahulu apakah ada masalah dengan pengaturan SQL Server Anda.
Pertama buka "jendela baris perintah", yang merupakan jendela MS-Dos, dan enter
telnet localhost 1433 (Tentu saja, ganti localhost dengan alamat server tempat SQL Server berada, dan ubah port ke port sebenarnya dari SQL Server. Defaultnya adalah 1433)
Jika berhasil berarti SQL Server anda sudah bisa terkoneksi. Jika gagal (biasanya untuk Win2003 atau WinXP SP2), silahkan masuk ke control panel, buka "Services" di "Administrative Tools", dan mulai layanan "SQLSERVERAGENT" ( Tentu saja, Anda juga dapat menerapkan paket patch SP3 dari SQL Server) dan melanjutkan operasi di atas, yang seharusnya berhasil.
Kedua, periksa apakah nama pengguna dan kata sandi Anda dapat masuk ke server SQL Server. Tentu saja cara paling langsung adalah dengan membuka "Query Analyzer" dari SQL Server, masukkan nama pengguna dan kata sandi, lalu klik OK.
Jika berhasil berarti pengaturan login SQL Server Anda OK. Jika gagal, silakan buka "Enterprise Manager" dari SQL Server dan masuk ke server SQL Server yang Anda daftarkan (yaitu yang ada di bawah "SQL Server Group" di sebelah kiri Dongdong) Yaitu, klik kanan, pilih "Properti", pilih "Keamanan" di kotak dialog "Konfigurasi SQL Server (Properti)", atur otentikasi ke "SQL Server dan Windows(S)", lalu gunakan Analisis Kueri Uji server satu kali. Jika Anda masih tidak dapat terhubung, periksa apakah nama pengguna dan kata sandi Anda sudah benar. Ulangi tes tersebut hingga berhasil.
Jika Anda menggunakan koneksi di JSP, tentunya selain langsung menggunakan JDBC, semua orang paling tertarik dengan kumpulan koneksi (Pool).
Untuk kenyamanan, atur dulu container JSP ke Tomcat, karena semua orang lebih sering menggunakannya
1. Konfigurasi global (aplikasi web apa pun di Tomcat dapat menggunakan kumpulan koneksi yang dikonfigurasi): Konfigurasikan kumpulan koneksi di server.xml. File server.xml terletak di direktori $TOMCAT_HOME$/conf/. GlobalNamingResources> dan masukkan kode berikut sebelum baris ini:
<Sumber daya
nama = "jdbc/nama kolam"
auth="Wadah"
ketik = "javax.sql.Sumber Data"
maxAktif="100"
maxIdle="30"
maxTunggu="10000"
nama pengguna = "sa"
kata sandi="kata sandi"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://127.0.0.1:1433;NamaDatabase=namadb"/>
Catatan: name adalah nama JNDI global lengkap dari kumpulan koneksi, nama pengguna adalah nama pengguna dan kata sandi koneksi database, driverClassName adalah nama driver database, dan url adalah string koneksi database. Silakan modifikasi sesuai dengan konfigurasi Anda yang sebenarnya.
Konfigurasinya belum selesai. Selanjutnya kita perlu mengatur nama akses global di konteks.xml. Pengaturannya adalah sebagai berikut:
Temukan </Context> dan masukkan kode berikut sebelum baris ini:
<ResourceLink global="jdbc/poolName" name="jdbc/poolName" type="javax.sql.DataSource"/>
2. Konfigurasi parsial: Buat file xml baru di direktori $TOMCAT_HOME$/conf/Catalina/localhost/. File xml harus memiliki nama yang sama dengan direktori aplikasi web yang Anda publikasikan konten (konfigurasi Tomcat Direktori virtual eksternal juga ditangani di sini, ha!
<Konteks jalur="/webappname" docBase="d:/webappname" debug="0" reloadable="true" crossContext="true">
<Sumber daya
nama = "jdbc/nama kolam"
auth="Wadah"
ketik = "javax.sql.Sumber Data"
maxAktif="100"
maxIdle="30"
maxTunggu="10000"
nama pengguna = "sa"
kata sandi="kata sandi"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
url="jdbc:microsoft:sqlserver://127.0.0.1:1433;NamaDatabase=namadb"/>
<ResourceLink global="jdbc/poolName" name="jdbc/poolName" type="javax.sql.DataSource"/>
</Konteks>
Untuk dua metode pertama, kode untuk memanggil kumpulan koneksi adalah sebagai berikut: (Metode Debug.log() dari com.yeno.util.Debug terutama digunakan untuk mencetak informasi debug dan dapat digantikan oleh System.out.println ())
impor java.sql.*;
impor javax.sql.DataSource;
import javax.penamaan.*;
import com.yeno.util.Debug;
/**
* <p>Kelas manajemen operasi database hanya mengimplementasikan koneksi database, penghentian, dan pemrosesan transaksi</p>
* @Aurhor Yeno.hhr
* Buat Tanggal 2005-12-9
*/
Kumpulan Data kelas publik {
Kumpulan Data publik(){}
/**
* <p>Dapatkan koneksi database melalui kumpulan koneksi Tomcat</p>
* @param tidak
* @return koneksi koneksi database
* @pengecualian PenamaanException,SQLException,Pengecualian
*/
Koneksi publik getConnect()
{
Sambungan koneksi = null;
mencoba
{
Konteks intiCtx = new InitialContext();
Konteks envCtx = (Konteks)intitCtx.lookup("java:comp/env");
Sumber Data ds = (Sumber Data)envCtx.lookup("jdbc/poolName");
samb = ds.getConnection();
}
tangkapan (NamingException selanjutnya)
{
Debug.log(ini,"getConnect()","Tidak ada lingkungan yang benar!");
}
menangkap(SQLException sqlex)
{
Debug.log(ini,"getConnect()","Tidak dapat tersambung!");
}
koneksi kembali;
}
}
Sebelum menggunakan kode di atas, Anda harus memastikan bahwa file JAR yang relevan dari driver JDBC (mssqlserver.jar, msutil.jar dan msbase.jar untuk Microsoft, jtds-1.2.jar untuk JTDS) telah dikonfigurasi dengan benar file JAR yang relevan ke direktori $TOMCAT_HOME $/common/lib/, atau Anda dapat menyalinnya ke direktori $WEB_ROOT$/WEB-INF/lib/
Anda juga dapat menggunakan injeksi untuk memanggil kumpulan koneksi, yaitu memanggilnya di file konfigurasi Hibernate hibernate.cfg.xml. Setelah mengonfigurasi kumpulan koneksi di wadah JSP, panggil pengaturan kumpulan koneksi sistem di file konfigurasi Hibernate kode Kutipan berikut:
<pabrik sesi>
<!--
<nama properti="jndi.class"></properti>
<nama properti="jndi.url"></properti>
-->
<property name="connection.datasource">java:comp/env/jdbc/poolName</property>
<nama properti="show_sql">salah</properti>
<property name="dialect">org.hibernate.dialect.SQLServerDialect</property>
</sesi-pabrik>
Untuk penggunaan khusus Hibernate, silakan periksa detail yang relevan.