データ ソースの構成にはよく理解できないパラメータがいくつかありますが、それらについては説明しません。私が使用したパラメータは次の 2 つです。
まず、apache-tomcat-6.0.16lib パスにある mysql JDBC 5.1 ドライバーが欠落していてはなりません。
1 つ目は、次のように TomCat で apache-tomcat-6.0.16confcontext.xml を準備することです。
XMLコード
<?xml バージョン='1.0' エンコーディング='utf-8'?>
<コンテキスト>
<リソース名="jdbc/myTest" auth="コンテナ"
type="javax.sql.DataSource" ユーザー名="root" パスワード=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.68:3306/points" />
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</コンテキスト>
<?xml バージョン='1.0' エンコーディング='utf-8'?>
<コンテキスト>
<リソース名="jdbc/myTest" auth="コンテナ"
type="javax.sql.DataSource" ユーザー名="root" パスワード=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.68:3306/points" />
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</コンテキスト>
name はデータソース名です。形式は「jdbc/データソース名」です。
言うまでもなく、ユーザー名、パスワードは空です。
URL は JDBC ドライバーの設定と同じです。
http://bizhi.knowsky.com/
2 つ目は、プロジェクトで .WebRoot/META-INF/context.xml を構成することです。
XMLコード
<?xml バージョン="1.0" エンコーディング="UTF-8"?>
<コンテキスト>
<リソース名="jdbc/test" auth="コンテナ"
type="javax.sql.DataSource" ユーザー名="root" パスワード=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.68:3306/points" />
</コンテキスト>
<?xml バージョン="1.0" エンコーディング="UTF-8"?>
<コンテキスト>
<リソース名="jdbc/test" auth="コンテナ"
type="javax.sql.DataSource" ユーザー名="root" パスワード=""
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.0.68:3306/points" />
</Context>Tomcat とほぼ同じですが、context.xml は META-INF 配下に自分で作成します。
データソースの使用法:
Javaコード
リスト = 新しい ArrayList();
接続 conn = null;
データソース ds = null;
PreparedStatement pst = null;
結果セットの最初 = null;
String sqlStr = "`user`(`userNo`,`userName`) 値 (?,?) に挿入";
試す {
InitialContext ctx = 新しい InitialContext();
ds = (データソース) 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, "良い" + i);
pst.setString(2, "isw " + i);
// バッチを使用して、複数の SQL 操作を 1 つの単位としてデータベースに転送します。
// Hibernate の jdbc.batch_size はオンラインで 30 が推奨されます
pst.addBatch();
}
pst.executeBatch();
rst = pst.executeQuery("ユーザーから * を選択");
// Fetch Size は、JDBC の prepareStatement がデータを読み取るたびにデータベースからフェッチされるレコードの数を設定します。
// Hibernate の jdbc.fetch_size はオンラインで 50 が推奨されます
rst.setFetchSize(50);
while (rst.next()) {
System.out.println(rst.getString(3));
list.add(rst.getString(3));
}
} catch (例外 e) {
e.printStackTrace();
エラーを返します。
} ついに {
試す {
rst.close();
pst.close();
conn.close();
} キャッチ (SQLException e) {
e.printStackTrace();
}
}
リスト = 新しい ArrayList();
接続 conn = null;
データソース ds = null;
PreparedStatement pst = null;
結果セットの最初 = null;
String sqlStr = "`user`(`userNo`,`userName`) 値 (?,?) に挿入";
試す {
InitialContext ctx = 新しい InitialContext();
ds = (データソース) 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, "良い" + i);
pst.setString(2, "isw " + i);
// バッチを使用して、複数の SQL 操作を 1 つの単位としてデータベースに転送します。
// Hibernate の jdbc.batch_size はオンラインで 30 が推奨されます
pst.addBatch();
}
pst.executeBatch();
rst = pst.executeQuery("select * from user");
// Fetch Size は、JDBC の prepareStatement がデータを読み取るたびにデータベースからフェッチされるレコードの数を設定します。
// Hibernate の jdbc.fetch_size はオンラインで 50 が推奨されます
rst.setFetchSize(50);
while (rst.next()) {
System.out.println(rst.getString(3));
list.add(rst.getString(3));
}
} catch (例外 e) {
e.printStackTrace();
エラーを返します。
} ついに {
試す {
rst.close();
pst.close();
conn.close();
} キャッチ (SQLException e) {
e.printStackTrace();
}
これについては、Hibernate が手動の JDBC よりも効率的に実行されると誰もが言っていますが、これは、ここで述べたフェッチ サイズとバッチの使用法が氷山の一角にすぎないためです。 。
Fectch Sizeについては、Batch以下のブログで詳しく説明されています。
http://xuganggogo.javaeye.com/blog/440516
Hibernate でのデータ ソースの使用 hibernate.cfg.xml
XMLコード
<?xml バージョン='1.0' エンコーディング='UTF-8'?>
<!DOCTYPE 休止状態構成 PUBLIC
「-//Hibernate/Hibernate 構成 DTD 3.0//EN」
「 http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd 」
<!-- MyEclipse Hibernate Tools によって生成されます -->
<休止状態の構成>
<セッションファクトリー>
<!-- 以下はデータソースの構成です -->
<プロパティ名="接続.データソース">
java:comp/env/jdbc/test
</プロパティ>
<!-- データベースの方言 -->
<property name="方言">
org.hibernate.dialect.MySQLDialect
</プロパティ>
<property name="jdbc.batch_size">25</property>
<property name="jdbc.fetch_size">50</property>
<mapping resource="com/isw2/entity/UserBean.hbm.xml" />
</セッションファクトリー>
</hibernate-configuration>
<?xml バージョン='1.0' エンコーディング='UTF-8'?>
<!DOCTYPE 休止状態構成 PUBLIC
「-//Hibernate/Hibernate 構成 DTD 3.0//EN」
「 http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd 」
<!-- MyEclipse Hibernate Tools によって生成されます -->
<休止状態の構成>
<セッションファクトリー>
<!-- 以下はデータソースの構成です -->
<プロパティ名="接続.データソース">
java:comp/env/jdbc/test
</プロパティ>
<!-- データベースの方言 -->
<property name="方言">
org.hibernate.dialect.MySQLDialect
</プロパティ>
<property name="jdbc.batch_size">25</property>
<property name="jdbc.fetch_size">50</property>
<mapping resource="com/isw2/entity/UserBean.hbm.xml" />
</セッションファクトリー>
</hibernate-configuration>
私たちの多くが人生で途中で諦めたり、やりたくないと感じてしまうのは、自分の理想に固執しないからです。 諦めなければ、いつかは理想は叶います。