Ada beberapa parameter dalam konfigurasi sumber data yang saya tidak begitu mengerti. Saya tidak akan membicarakan parameter yang saya tidak mengerti.
Pertama-tama, driver mysql JDBC 5.1 di jalur Apache-Tomcat-6.0.16lib tidak boleh hilang.
Yang pertama adalah menyiapkan Apache-Tomcat-6.0.16confcontext.xml di TomCat sebagai berikut:
kode XML
<?xml versi='1.0' pengkodean='utf-8'?>
<Konteks>
<Nama sumber daya="jdbc/myTest" auth="Container"
ketik = "javax.sql.DataSource" nama pengguna = "root" kata sandi = ""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.68:3306/points" />
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Konteks>
<?xml versi='1.0' pengkodean='utf-8'?>
<Konteks>
<Nama sumber daya="jdbc/myTest" auth="Container"
ketik = "javax.sql.DataSource" nama pengguna = "root" kata sandi = ""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.68:3306/points" />
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Konteks>
nama adalah nama sumber data. Formatnya adalah: "jdbc/nama sumber data"
Tak perlu disebutkan nama pengguna, kata sandi. Kata sandi di sini kosong.
Urlnya sama dengan konfigurasi driver JDBC.
http://bizhi.knowsky.com/
Yang kedua adalah mengkonfigurasi .WebRoot/META-INF/context.xml di proyek:
kode XML
<?xml versi="1.0" pengkodean="UTF-8"?>
<Konteks>
<Nama sumber daya="jdbc/test" auth="Kontainer"
ketik = "javax.sql.DataSource" nama pengguna = "root" kata sandi = ""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.68:3306/points" />
</Konteks>
<?xml versi="1.0" pengkodean="UTF-8"?>
<Konteks>
<Nama sumber daya="jdbc/test" auth="Kontainer"
ketik = "javax.sql.DataSource" nama pengguna = "root" kata sandi = ""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.68:3306/points" />
</Context>Ini hampir sama seperti di Tomcat. Harap dicatat bahwa konteks.xml dibuat sendiri di bawah META-INF.
Penggunaan sumber data:
kode Jawa
daftar = Daftar Array baru();
Sambungan koneksi = null;
Sumber Data ds = nol;
Pernyataan Disiapkan pst = null;
HasilSet pertama = null;
String sqlStr = "masukkan ke dalam nilai `pengguna`(`Nopengguna`,`Namapengguna`) (?,?)";
mencoba {
InitialContext ctx = InitialContext baru();
ds = (Sumber Data) ctx.lookup("java:comp/env/jdbc/test");
samb = ds.getConnection();
pst = samb.prepareStatement(sqlStr);
pst.clearBatch();
untuk (int saya = 0; saya < 4; saya++) {
pst.setString(1, "bagus " + saya);
pst.setString(2, "isw " + saya);
// Gunakan batch untuk mentransfer beberapa operasi SQL ke database sebagai satu unit.
// jdbc.batch_size di Hibernate direkomendasikan online pada usia 30
pst.addBatch();
}
pst.executeBatch();
pertama = pst.executeQuery("pilih * dari pengguna");
// Fetch Size adalah untuk mengatur jumlah record yang diambil dari database setiap kali PrepareStatement JDBC membaca data.
// jdbc.fetch_size di Hibernate direkomendasikan online pada 50
pertama.setFetchSize(50);
sementara (pertama.berikutnya()) {
Sistem.keluar.println(pertama.getString(3));
daftar.tambahkan(pertama.getString(3));
}
} tangkapan (Pengecualian e) {
e.printStackTrace();
kembalikan KESALAHAN;
} Akhirnya {
mencoba {
pertama.tutup();
pst.tutup();
samb.close();
} tangkapan (SQLException e) {
e.printStackTrace();
}
}
daftar = Daftar Array baru();
Sambungan koneksi = null;
Sumber Data ds = nol;
Pernyataan Disiapkan pst = null;
HasilSet pertama = null;
String sqlStr = "masukkan ke dalam nilai `pengguna`(`Nopengguna`,`Namapengguna`) (?,?)";
mencoba {
InitialContext ctx = InitialContext baru();
ds = (Sumber Data) ctx.lookup("java:comp/env/jdbc/test");
samb = ds.getConnection();
pst = samb.prepareStatement(sqlStr);
pst.clearBatch();
untuk (int saya = 0; saya < 4; saya++) {
pst.setString(1, "bagus " + saya);
pst.setString(2, "isw " + saya);
// Gunakan batch untuk mentransfer beberapa operasi SQL ke database sebagai satu unit.
// jdbc.batch_size di Hibernate direkomendasikan online pada usia 30
pst.addBatch();
}
pst.executeBatch();
pertama = pst.executeQuery("pilih * dari pengguna");
// Fetch Size adalah untuk mengatur jumlah record yang diambil dari database setiap kali PrepareStatement JDBC membaca data.
// jdbc.fetch_size di Hibernate direkomendasikan online pada 50
pertama.setFetchSize(50);
sementara (pertama.berikutnya()) {
Sistem.keluar.println(pertama.getString(3));
daftar.tambahkan(pertama.getString(3));
}
} tangkapan (Pengecualian e) {
e.printStackTrace();
kembalikan KESALAHAN;
} Akhirnya {
mencoba {
pertama.tutup();
pst.tutup();
samb.close();
} tangkapan (SQLException e) {
e.printStackTrace();
}
} Izinkan saya membicarakannya di atas. Semua orang mengatakan bahwa Hibernate melakukan operasi database lebih efisien daripada JDBC manual. Ini karena Hibernate memiliki beberapa optimasi untuk kueri. Ukuran Pengambilan dan Batch mungkin hanyalah puncak gunung es .
Mengenai Fectch Size, blog di bawah Batch memberikan penjelasan lebih detail.
http://xuganggogo.javaeye.com/blog/440516
Penggunaan sumber data di Hibernate hibernate.cfg.xml
kode XML
<?xml versi='1.0' pengkodean='UTF-8'?>
<!DOCTYPE konfigurasi hibernasi PUBLIC
"-//Hibernasi/Konfigurasi Hibernasi DTD 3.0//EN"
" http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd ">
<!-- Dihasilkan oleh Alat Hibernasi MyEclipse. -->
<konfigurasi hibernasi>
<pabrik sesi>
<!-- Berikut konfigurasi sumber data -->
<nama properti="koneksi.datasource">
java:comp/env/jdbc/test
</properti>
<!-- Dialek Basis Data -->
<nama properti="dialek">
org.hibernate.dialect.MySQLDialect
</properti>
<nama properti="jdbc.batch_size">25</properti>
<nama properti="jdbc.fetch_size">50</properti>
<mapping resource="com/isw2/entity/UserBean.hbm.xml" />
</sesi-pabrik>
</hibernasi-konfigurasi>
<?xml versi='1.0' pengkodean='UTF-8'?>
<!DOCTYPE konfigurasi hibernasi PUBLIC
"-//Hibernasi/Konfigurasi Hibernasi DTD 3.0//EN"
" http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd ">
<!-- Dihasilkan oleh Alat Hibernasi MyEclipse. -->
<konfigurasi hibernasi>
<pabrik sesi>
<!-- Berikut konfigurasi sumber data -->
<nama properti="koneksi.datasource">
java:comp/env/jdbc/test
</properti>
<!-- Dialek Basis Data -->
<nama properti="dialek">
org.hibernate.dialect.MySQLDialect
</properti>
<nama properti="jdbc.batch_size">25</properti>
<nama properti="jdbc.fetch_size">50</properti>
<mapping resource="com/isw2/entity/UserBean.hbm.xml" />
</sesi-pabrik>
</hibernasi-konfigurasi>
Alasan mengapa banyak dari kita menyerah di tengah jalan dan merasa tidak mau melakukannya dalam hidup hanya karena kita tidak berpegang teguh pada cita-cita kita, selama kita tidak menyerah, cita-cita kita pada akhirnya akan terwujud.