Hibernate
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
* [[Hibernate]]
#contents
** 環境
http://www.hibernate.org/からHibernate CoreとHibernate To...
Hibernate Tools(Update site:http://download.jboss.org/jbo...
この中のHibernate ConsoleはHQLを試すには便利です。Eclipse...
[[Eclipse パーフェクトマニュアル Vol.6>http://www.amazon....
またMiddlegen(http://boss.bekk.no/boss/middlegen/ )もあり...
参考http://www.atmarkit.co.jp/fjava/rensai3/eclipseplgn03...
** サンプル
* Table001
* <many-to-one
* name="table003"
* class="org.ultimania.model.Table003"
* update="false" insert="false">
* <column name="nokokyaku" />
* <column name="nokanri" />
* </many-to-one>
public static void main(String[] args) {
Configuration config = new Configuration();
config = config.configure();
SessionFactory sessionfactory = config.buildSessionFact...
Session session = sessionfactory.openSession();
Transaction tx = session.beginTransaction();
try {
// 1テーブル全件ロード
Criteria crit = session.createCriteria(Table003.class);
List list = crit.list();
for (int i = 0; i < list.size(); i++) {
Table003 table003 = (Table003) list.get(i);
System.out.println("A:" + table003.getComp_id().getDb...
}
// 1テーブルプライマリーキーで検索 load使用
Table003PK table003PK = new Table003PK();
table003PK.setNokokyaku("A");
table003PK.setDbhinban("BBB");
Table003 table003 = (Table003) session.load(Table003.c...
System.out.println("B:" + table003.getComp_id().getDbh...
//criteriaを複数
Criteria crit2;
crit = session.createCriteria(Table001.class);
crit2 = crit.createCriteria("table003");
crit.add(Expression.like("nokanri", "OHR%"));
crit2.add(Expression.like("comp_id.dbhinban", "%BK"));
//where this_.dbhinban like ?
list = crit.list();
for (int i = 0; i < list.size(); i++) {
Table001 table001 = (Table001) list.get(i);
System.out.println("B1:" + table001.getNmsyohin() );
}
// HSQLで検索 プライマリキーの場合は、middlegenで生成...
Query q = session.createQuery("from Table003 x3 where ...
q.setString("nokokyaku", "TOP");
List result = q.list();
for (int i = 0; i < result.size(); i++) {
Table003 table0031 = (Table003) result.get(i);
System.out.println("C:" + table0031.getComp_id().getD...
}
// HSQLで検索 件数をしている 11件目(0から始まる)から20...
q = session.createQuery("from Table003 x3 where x3.com...
q.setString("nokokyaku", "TOP");
q.setFirstResult(10);
q.setMaxResults(20);
result = q.list();
for (int i = 0; i < result.size(); i++) {
Table003 table0031 = (Table003) result.get(i);
System.out.println("D:" + table0031.getComp_id().getD...
}
// 集合関数
q = session.createQuery("select sum(kgjyodai),avg(kgjy...
Object[] data = (Object[])q.uniqueResult();
System.out.println("E:" + ((Integer)data[0]).toString(...
/*
複数の場合
result = q.list();
for (int i = 0; i < result.size(); i++) {
Object[] data = (Object[])result.get(i);
Integer a = (Integer)data[0];
System.out.println("E:" + ((Integer)((Object[])result...
}
*/
// HSQLで検索 1件と分かっている場合 uniqueResultをつ...
q = session.createQuery("from Table003 x3 where x3.com...
q.setString("nokokyaku", "A");
q.setString("dbhinban", "BBB");
table003 = (Table003) q.uniqueResult();
System.out.println("F:" + table003.getComp_id().getDbh...
// 結合(シータスタイル)
String strSQL = " select xx001.*,xx003.* from table_xx...
strSQL = strSQL + " and xx003.dbhinban like '11%'";
strSQL = strSQL + " order by xx003.dbhinban";
SQLQuery sqlQuery = session.createSQLQuery(strSQL);
sqlQuery.addEntity("xx003", Table003.class);
sqlQuery.addEntity("xx001", Table001.class);
list = sqlQuery.list();
for (int i = 0; i < list.size(); i++) {
Object[] items = (Object[]) list.get(i);
Table003 table003a = (Table003) items[0];
Table001 table001a;
if (items[1] == null) {
table001a = new Table001();
} else {
table001a = (Table001) items[1];
}
System.out.println("G:" + table003a.getComp_id().getD...
}
// 外部結合
strSQL = " select xx003.*,xx001.* from table_003 xx003...
strSQL = strSQL + " where xx003.dbhinban like '11%'";
strSQL = strSQL + " order by xx003.dbhinban";
sqlQuery = session.createSQLQuery(strSQL);
sqlQuery.addEntity("xx003", Table003.class);
sqlQuery.addEntity("xx001", Table001.class);
sqlQuery.setFirstResult(0);
sqlQuery.setMaxResults(3);
list = sqlQuery.list();
for (int i = 0; i < list.size(); i++) {
Object[] items = (Object[]) list.get(i);
Table003 table003a = (Table003) items[0];
Table001 table001a;
if (items[1] == null) {
table001a = new Table001();
} else {
table001a = (Table001) items[1];
}
System.out.println("H:" + table003a.getComp_id().getD...
}
// 1件更新
table003.setCdcolor("ほほ");
//session.save(table003);
// clearを使った場合、分離されsave時にinsertとなってし...
session.clear();
session.update(table003);
//一括更新
Query query = session.createQuery("update Table003 set...
int intResult = query.executeUpdate();
System.out.println("I:" + intResult);
tx.commit();
} catch (HibernateException ex) {
ex.printStackTrace();
tx.rollback();
} finally {
session.close();
}
}
ここでのTable003PKはデフォルトでMiddlegenで生成した時にプ...
**TIPS
***SQL文の表示
hibernate.cfg.xmlに
<property name="show_sql">true</property>
を追加
** リンク
[[Hibernateリファレンス・ドキュメント>http://www.hibernat...
[[Hibernate>http://www.techscore.com/tech/Others/Hibernat...
[[Hibernateで理解するO/Rマッピング(1)>http://www.atmark...
[[Hibernate 入門記>http://www.wikiroom.com/koichik/index....
サンプルで丁寧な解説があります。~
[[MiddlegenIDEプラグイン>http://www.atmarkit.co.jp/fjava/...
[[Hibernateトラブルシューティング>http://www.javaworld.jp...
[[ファイヤープロジェクト>http://www.h7.dion.ne.jp/~matsu/...
[[hibernateを利用してはいけない5つのシチュエーション>htt...
このてのツールは癖がわかるまでに一苦労ありますね。楽に開...
** 参考書籍
** コメント
-Hello, my name is Alex, i'm a newbie here. I really do l...
--#comment
終了行:
* [[Hibernate]]
#contents
** 環境
http://www.hibernate.org/からHibernate CoreとHibernate To...
Hibernate Tools(Update site:http://download.jboss.org/jbo...
この中のHibernate ConsoleはHQLを試すには便利です。Eclipse...
[[Eclipse パーフェクトマニュアル Vol.6>http://www.amazon....
またMiddlegen(http://boss.bekk.no/boss/middlegen/ )もあり...
参考http://www.atmarkit.co.jp/fjava/rensai3/eclipseplgn03...
** サンプル
* Table001
* <many-to-one
* name="table003"
* class="org.ultimania.model.Table003"
* update="false" insert="false">
* <column name="nokokyaku" />
* <column name="nokanri" />
* </many-to-one>
public static void main(String[] args) {
Configuration config = new Configuration();
config = config.configure();
SessionFactory sessionfactory = config.buildSessionFact...
Session session = sessionfactory.openSession();
Transaction tx = session.beginTransaction();
try {
// 1テーブル全件ロード
Criteria crit = session.createCriteria(Table003.class);
List list = crit.list();
for (int i = 0; i < list.size(); i++) {
Table003 table003 = (Table003) list.get(i);
System.out.println("A:" + table003.getComp_id().getDb...
}
// 1テーブルプライマリーキーで検索 load使用
Table003PK table003PK = new Table003PK();
table003PK.setNokokyaku("A");
table003PK.setDbhinban("BBB");
Table003 table003 = (Table003) session.load(Table003.c...
System.out.println("B:" + table003.getComp_id().getDbh...
//criteriaを複数
Criteria crit2;
crit = session.createCriteria(Table001.class);
crit2 = crit.createCriteria("table003");
crit.add(Expression.like("nokanri", "OHR%"));
crit2.add(Expression.like("comp_id.dbhinban", "%BK"));
//where this_.dbhinban like ?
list = crit.list();
for (int i = 0; i < list.size(); i++) {
Table001 table001 = (Table001) list.get(i);
System.out.println("B1:" + table001.getNmsyohin() );
}
// HSQLで検索 プライマリキーの場合は、middlegenで生成...
Query q = session.createQuery("from Table003 x3 where ...
q.setString("nokokyaku", "TOP");
List result = q.list();
for (int i = 0; i < result.size(); i++) {
Table003 table0031 = (Table003) result.get(i);
System.out.println("C:" + table0031.getComp_id().getD...
}
// HSQLで検索 件数をしている 11件目(0から始まる)から20...
q = session.createQuery("from Table003 x3 where x3.com...
q.setString("nokokyaku", "TOP");
q.setFirstResult(10);
q.setMaxResults(20);
result = q.list();
for (int i = 0; i < result.size(); i++) {
Table003 table0031 = (Table003) result.get(i);
System.out.println("D:" + table0031.getComp_id().getD...
}
// 集合関数
q = session.createQuery("select sum(kgjyodai),avg(kgjy...
Object[] data = (Object[])q.uniqueResult();
System.out.println("E:" + ((Integer)data[0]).toString(...
/*
複数の場合
result = q.list();
for (int i = 0; i < result.size(); i++) {
Object[] data = (Object[])result.get(i);
Integer a = (Integer)data[0];
System.out.println("E:" + ((Integer)((Object[])result...
}
*/
// HSQLで検索 1件と分かっている場合 uniqueResultをつ...
q = session.createQuery("from Table003 x3 where x3.com...
q.setString("nokokyaku", "A");
q.setString("dbhinban", "BBB");
table003 = (Table003) q.uniqueResult();
System.out.println("F:" + table003.getComp_id().getDbh...
// 結合(シータスタイル)
String strSQL = " select xx001.*,xx003.* from table_xx...
strSQL = strSQL + " and xx003.dbhinban like '11%'";
strSQL = strSQL + " order by xx003.dbhinban";
SQLQuery sqlQuery = session.createSQLQuery(strSQL);
sqlQuery.addEntity("xx003", Table003.class);
sqlQuery.addEntity("xx001", Table001.class);
list = sqlQuery.list();
for (int i = 0; i < list.size(); i++) {
Object[] items = (Object[]) list.get(i);
Table003 table003a = (Table003) items[0];
Table001 table001a;
if (items[1] == null) {
table001a = new Table001();
} else {
table001a = (Table001) items[1];
}
System.out.println("G:" + table003a.getComp_id().getD...
}
// 外部結合
strSQL = " select xx003.*,xx001.* from table_003 xx003...
strSQL = strSQL + " where xx003.dbhinban like '11%'";
strSQL = strSQL + " order by xx003.dbhinban";
sqlQuery = session.createSQLQuery(strSQL);
sqlQuery.addEntity("xx003", Table003.class);
sqlQuery.addEntity("xx001", Table001.class);
sqlQuery.setFirstResult(0);
sqlQuery.setMaxResults(3);
list = sqlQuery.list();
for (int i = 0; i < list.size(); i++) {
Object[] items = (Object[]) list.get(i);
Table003 table003a = (Table003) items[0];
Table001 table001a;
if (items[1] == null) {
table001a = new Table001();
} else {
table001a = (Table001) items[1];
}
System.out.println("H:" + table003a.getComp_id().getD...
}
// 1件更新
table003.setCdcolor("ほほ");
//session.save(table003);
// clearを使った場合、分離されsave時にinsertとなってし...
session.clear();
session.update(table003);
//一括更新
Query query = session.createQuery("update Table003 set...
int intResult = query.executeUpdate();
System.out.println("I:" + intResult);
tx.commit();
} catch (HibernateException ex) {
ex.printStackTrace();
tx.rollback();
} finally {
session.close();
}
}
ここでのTable003PKはデフォルトでMiddlegenで生成した時にプ...
**TIPS
***SQL文の表示
hibernate.cfg.xmlに
<property name="show_sql">true</property>
を追加
** リンク
[[Hibernateリファレンス・ドキュメント>http://www.hibernat...
[[Hibernate>http://www.techscore.com/tech/Others/Hibernat...
[[Hibernateで理解するO/Rマッピング(1)>http://www.atmark...
[[Hibernate 入門記>http://www.wikiroom.com/koichik/index....
サンプルで丁寧な解説があります。~
[[MiddlegenIDEプラグイン>http://www.atmarkit.co.jp/fjava/...
[[Hibernateトラブルシューティング>http://www.javaworld.jp...
[[ファイヤープロジェクト>http://www.h7.dion.ne.jp/~matsu/...
[[hibernateを利用してはいけない5つのシチュエーション>htt...
このてのツールは癖がわかるまでに一苦労ありますね。楽に開...
** 参考書籍
** コメント
-Hello, my name is Alex, i'm a newbie here. I really do l...
--#comment
ページ名: