Es gibt einige Parameter in der Datenquellenkonfiguration, die ich nicht ganz verstehe. Über diejenigen, die ich nicht verstehe, möchte ich hier nicht sprechen.
Zunächst einmal darf der MySQL JDBC 5.1-Treiber im Pfad apache-tomcat-6.0.16lib nicht fehlen.
Die erste besteht darin, apache-tomcat-6.0.16confcontext.xml in TomCat wie folgt vorzubereiten:
XML-Code
<?xml version='1.0'kodierung='utf-8'?>
<Kontext>
<Resource name="jdbc/myTest" auth="Container"
type="javax.sql.DataSource" Benutzername="root" Passwort=""
DriverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.68:3306/points" />
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Kontext>
<?xml version='1.0'kodierung='utf-8'?>
<Kontext>
<Resource name="jdbc/myTest" auth="Container"
type="javax.sql.DataSource" Benutzername="root" Passwort=""
DriverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.68:3306/points" />
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Kontext>
Name ist der Name der Datenquelle. Das Format ist: „jdbc/Datenquellenname“.
Unnötig zu erwähnen, dass Benutzername und Passwort hier leer sind.
Die URL ist dieselbe wie die JDBC-Treiberkonfiguration.
http://bizhi.knowsky.com/
Die zweite besteht darin, .WebRoot/META-INF/context.xml im Projekt zu konfigurieren:
XML-Code
<?xml version="1.0"kodierung="UTF-8"?>
<Kontext>
<Ressourcenname="jdbc/test" auth="Container"
type="javax.sql.DataSource" Benutzername="root" Passwort=""
DriverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.68:3306/points" />
</Kontext>
<?xml version="1.0"kodierung="UTF-8"?>
<Kontext>
<Ressourcenname="jdbc/test" auth="Container"
type="javax.sql.DataSource" Benutzername="root" Passwort=""
DriverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.68:3306/points" />
</Context>Es ist fast das Gleiche wie in Tomcat. Bitte beachten Sie, dass context.xml von Ihnen selbst unter META-INF erstellt wird.
Nutzung der Datenquelle:
Java-Code
list = new ArrayList();
Verbindungsverbindung = null;
DataSource ds = null;
PreparedStatement pst = null;
ResultSet rst = null;
String sqlStr = "in `user`(`userNo`,`userName`) Werte (?,?) einfügen";
versuchen {
InitialContext ctx = new InitialContext();
ds = (DataSource) ctx.lookup("java:comp/env/jdbc/test");
conn = ds.getConnection();
pst = conn.prepareStatement(sqlStr);
pst.clearBatch();
for (int i = 0; i < 4; i++) {
pst.setString(1, "good" + i);
pst.setString(2, "isw " + i);
// Verwenden Sie Batch, um mehrere SQL-Operationen als Einheit an die Datenbank zu übertragen.
// jdbc.batch_size im Ruhezustand wird online bei 30 empfohlen
pst.addBatch();
}
pst.executeBatch();
rst = pst.executeQuery("select * from user");
// Fetch Size dient dazu, die Anzahl der Datensätze festzulegen, die jedes Mal aus der Datenbank abgerufen werden, wenn JDBCs PrepareStatement Daten liest.
// jdbc.fetch_size im Ruhezustand wird online bei 50 empfohlen
rst.setFetchSize(50);
while (rst.next()) {
System.out.println(rst.getString(3));
list.add(rst.getString(3));
}
} Catch (Ausnahme e) {
e.printStackTrace();
Rückkehr FEHLER;
} Endlich {
versuchen {
rst.close();
pst.close();
conn.close();
} Catch (SQLException e) {
e.printStackTrace();
}
}
list = new ArrayList();
Verbindungsverbindung = null;
DataSource ds = null;
PreparedStatement pst = null;
ResultSet rst = null;
String sqlStr = "in `user`(`userNo`,`userName`) Werte (?,?) einfügen";
versuchen {
InitialContext ctx = new InitialContext();
ds = (DataSource) ctx.lookup("java:comp/env/jdbc/test");
conn = ds.getConnection();
pst = conn.prepareStatement(sqlStr);
pst.clearBatch();
for (int i = 0; i < 4; i++) {
pst.setString(1, "good" + i);
pst.setString(2, "isw " + i);
// Verwenden Sie Batch, um mehrere SQL-Operationen als Einheit an die Datenbank zu übertragen.
// jdbc.batch_size im Ruhezustand wird online bei 30 empfohlen
pst.addBatch();
}
pst.executeBatch();
rst = pst.executeQuery("select * from user");
// Fetch Size dient dazu, die Anzahl der Datensätze festzulegen, die jedes Mal aus der Datenbank abgerufen werden, wenn JDBCs PrepareStatement Daten liest.
// jdbc.fetch_size im Ruhezustand wird online bei 50 empfohlen
rst.setFetchSize(50);
while (rst.next()) {
System.out.println(rst.getString(3));
list.add(rst.getString(3));
}
} Catch (Ausnahme e) {
e.printStackTrace();
Rückkehr FEHLER;
} Endlich {
versuchen {
rst.close();
pst.close();
conn.close();
} Catch (SQLException e) {
e.printStackTrace();
}
} Lassen Sie mich darüber sprechen. Alle sagen, dass Hibernate Datenbankoperationen effizienter ausführt als manuelles JDBC. Dies liegt daran, dass es einige Optimierungen für Abfragen gibt, die ich hier erwähnt habe . .
Bezüglich der Fectch-Größe gibt der Blog unter Batch eine detailliertere Erklärung.
http://xuganggogo.javaeye.com/blog/440516
Die Verwendung von Datenquellen in Hibernate hibernate.cfg.xml
XML-Code
<?xml version='1.0'kodierung='UTF-8'?>
<!DOCTYPE Hibernate-Konfiguration PUBLIC
„-//Hibernate/Hibernate Configuration DTD 3.0//EN“
" http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd ">
<!-- Erstellt von MyEclipse Hibernate Tools -->
<Hibernate-Konfiguration>
<session-factory>
<!-- Das Folgende ist die Konfiguration der Datenquelle -->
<property name="connection.datasource">
java:comp/env/jdbc/test
</property>
<!-- Datenbankdialekt -->
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="jdbc.batch_size">25</property>
<property name="jdbc.fetch_size">50</property>
<mapping resources="com/isw2/entity/UserBean.hbm.xml" />
</session-factory>
</hibernate-configuration>
<?xml version='1.0'kodierung='UTF-8'?>
<!DOCTYPE Hibernate-Konfiguration PUBLIC
„-//Hibernate/Hibernate Configuration DTD 3.0//EN“
" http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd ">
<!-- Erstellt von MyEclipse Hibernate Tools -->
<Hibernate-Konfiguration>
<session-factory>
<!-- Das Folgende ist die Konfiguration der Datenquelle -->
<property name="connection.datasource">
java:comp/env/jdbc/test
</property>
<!-- Datenbankdialekt -->
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="jdbc.batch_size">25</property>
<property name="jdbc.fetch_size">50</property>
<mapping resources="com/isw2/entity/UserBean.hbm.xml" />
</session-factory>
</hibernate-configuration>
Der Grund, warum viele von uns auf halbem Weg aufgeben und das Gefühl haben, im Leben nicht bereit zu sein, dies zu tun, liegt einfach darin, dass wir nicht an unseren Idealen festhalten. Solange wir nicht aufgeben, werden unsere Ideale irgendwann wahr.