<?xml version = "1.0"エンコード= "GBK"?> <プロジェクト名= "冬眠"のbasedir = "" デフォルト = ""> <プロパティ名= "SRC"値= "SRC" /> <プロパティ名= "DEST"値= "クラス" /> <パスID = "クラスパス"> <ファイルセットDIR =」../。 ./lib "> <名前を含める=" ** / *。JAR "/> </ファイルセット> <pathelementパス=" $ {DEST} "/> </パス> <ターゲット名="コンパイル"DESCRIPTION ="コンパイルすべてのソースコード"> <削除DIR =" $ {DEST} "/> < <javacのDESTDIR = "$ {DEST}"デバッグ= "true"をincludeantruntime = "yes"を 廃止 = "false"を最適化= "false"をfailonerror = "真の"> <SRCパス= "$ {SRC}" /> <クラスパスREFID = "クラスパス" /> <compilerarg値= " - Xlint:廃止" /> </ javacの> </ target>を <ターゲット名= "実行"の説明= "ファイル名を指定して実行メインクラスが"依存= "コンパイル"> <javaのクラス名= "lee.UserManager"フォーク= "yes"をfailonerror = "真の"> <クラスパスREFID = "クラスパス" /> </ javaの> </ target>を </プロジェクト>
<xmlのバージョン= "1.0"エンコード= "GBK"?> <! - DTDは、情報Hibernate設定ファイルを指定します。 - > <DOCTYPE hibernate-!設定PUBLIC " - //休止/ Hibernate構成DTD 3.0 // EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <! -コンフィギュレーションのHibernate設定ファイルのルート要素である- > <休止-設定> の<session-工場の> <! -指定駆動するためのデータベース接続- > <プロパティ名=「connection.driver_class」>はcom.mysql.jdbc.Driver </プロパティ> <! -休止状態は、アプリケーション・データベースに接続されたURLは、データベース接続を指定名前- > <プロパティ名= "connection.url"> JDBC:MySQLの:// localhostの/休止状態</プロパティ> <! -データベースへの接続を指定したユーザ名- >/プロパティ> <プロパティ名= "connection.username">ルート</プロパティ> <! -指定したデータベースに接続するためのパスワード- > <プロパティ名=「connection.password」> 32147 </プロパティ> <! - -接続プールを指定の最大接続数を> <プロパティ名=「hibernate.c3p0。 MAX_SIZE "> 20 </プロパティ>です ! - -接続プールは、接続の最小数を指定> < hibernate.c3p0.min_size「> 1 </プロパティ>。<プロパティ名=" <! -接続タイムアウト指定した接続プール期間- > <プロパティ名= "hibernate.c3p0.timeout"> 5000 </プロパティ> <! -キャッシュStatementオブジェクトの接続プールの最大数を指定- > <プロパティ名= "hibernate.c3p0.max_statements"> 100 </プロパティ> <プロパティ名= "hibernate.c3p0.idle_test_period"> 3000 </プロパティ> プロパティ名= "hibernate.c3p0.idle_test_period"> 3000 </プロパティ> <プロパティ名= "hibernate.c3p0.acquire_increment"> 2 </プロパティ> <名=プロパティ"hibernate.c3p0.validate"> trueに </プロパティ> <! -方言指定されたデータベース- > <プロパティ名= "方言"> org.hibernate.dialect.MySQL5InnoDBDialect </プロパティ> <! -必要に応じて、自動的にデータベースを作成します- > <プロパティ名= "hbm2ddl.auto">更新</プロパティ> <! - > - SQLを生成Hibernateは永続表示動作 <プロパティ名= "show_sql"> trueに </プロパティ> <! - > - SQLスクリプトは、出力をフォーマットします 。<プロパティ名= "hibernate.format_sql" > trueに </プロパティ> <! -すべての永続クラスのクラス名のリスト- > <マッピングクラス = "org.crazyit.app.domain.User" /> </セッション・ファクトリー> </ Hibernateは、設定>
パッケージorg.crazyit.app.domain; 輸入のjavax.persistence *。; / ** *内容: * <BR/>网站:<a href=" "> http://www.crazyit.org 疯狂のJava联盟</a>の * <BR/>著作権(C)、2001年から2016年、 Yeeku.H.Lee * <BR/>このプログラムは著作権法により保護されています。 *プログラム名<BR/>: * <BR/>日: * @author Yeeku.H.Lee [email protected] * @version 1.0 * / @Entity @Table(名前 = "user_inf" ) パブリック クラスユーザー { / / 定义标识属性 @Id @Column(名前=」 @GeneratedValue(戦略 = GenerationType.IDENTITYを) プライベート整数ID; プライベート文字列名; プライベート int型の年齢; プライベート文字列の国籍; // 引数なしのコンストラクタ パブリックユーザーは、() { } // コンストラクタは、すべてのメンバ変数を初期化 パブリックユーザーを(名前ストリング、整数年齢、国籍文字列) { この .nameの= 名; この .age = 年齢; この .nationality = 国籍; } // セッターとゲッターメソッドのID 公共 ボイドSETID(整数ID) { この .ID = ID。 } パブリック整数のgetId() { 戻り 、この.IDと、 } // 名前的セッター和ゲッター方法 公共 ボイドのsetName(文字列名) { この .nameの= 名前。 } パブリック文字列のgetName() { 戻り 、この.nameのを、 } // 年齢的セッター和ゲッター方法 公共 のボイド setAge(int型の年齢) { この .age =年齢; } 公共 INT getAge() { 戻り 、この.ageと、 } // 国籍的セッター和ゲッター方法 公共 ボイドsetNationality(文字列国籍) { この .nationality = 国籍。 } パブリック文字列getNationality() { 戻り 、この.nationalityと、 } }
パッケージリー; 輸入 org.hibernate *。; 輸入 org.hibernate.cfg *。; 輸入 org.hibernate.service *。; 輸入 org.hibernate.boot.registry *。; / ** *内容: * <BR/>网站:<a href=" "> http://www.crazyit.org 疯狂のJava联盟</a>の * <BR/>著作権(C)、2001年から2016年、 Yeeku.H.Lee * <BR/>このプログラムは著作権法により保護されています。 *プログラム名<BR/>: * <BR/>日: * @author Yeeku.H.Lee [email protected] * @version 1.0 * / パブリック クラスHibernateUtilの { 公共の 静的な 最終のSessionFactoryのSessionFactory; 静的 { 試み { // デフォルトの設定ファイルを作成hibernate.cfg.xmlの設定例 設定CFG = 新しい新しいコンフィギュレーション() .configure(); // Configurationインスタンスには、SessionFactoryのインスタンスを作成し てServiceRegistryてServiceRegistryを= 新しい新しいStandardServiceRegistryBuilder() 。.applySettings(cfg.getProperties())を作成(); のSessionFactory = cfg.buildSessionFactory(てServiceRegistry); } キャッチ(ThrowableのEX) { System.err.println( +「のSessionFactoryは初期作成に失敗しました。」EX)を、 スロー 新しい新しいExceptionInInitializerError(EX); } } // ThreadLocalのスレッド同期する必要がなくなり、共有データへの複数のスレッドを分離することができ パブリック 静的 最終のThreadLocal <セッション> セッション = 新しい新規のThreadLocal <セッション> (); 公共の 静的セッションcurrentSession()が スロー無地HibernateExceptionで { セッションS = Session.getを(); //スレッドは、セッションは、新しいセッションが作成されていない場合 IF(S == NULL ) { S = sessionFactory.openSession()を; // セッションで得られたセッション変数記憶ThreadLocal変数 session.set(S); } 戻り; Sを } パブリック 静的 ボイド)(closeSession スロー普通HibernateExceptionで { セッションS = Session.get(); IF(S!= NULL ) S。CLOSE(); session.set(NULL ); } }
パッケージリー; 輸入org.hibernate.Transaction。 インポートのorg.hibernate.Session; インポート org.crazyit.app.domain *。; / ** *内容: * <BR/>网站:<a href=" "> http://www.crazyit.org 疯狂のJava联盟</a>の * <BR/>著作権(C)、2001年から2016年、 Yeeku.H.Lee * <BR/>このプログラムは著作権法により保護されています。 *プログラム名<BR/>: * <BR/>日: * @author Yeeku.H.Lee [email protected] * @version 1.0 * / パブリック クラスのUserManager { パブリック 静的の 無効メイン(文字列[]引数)をスロー例外 { のUserManager MGRを = 新しい新規のUserManager(); mgr.updateUsers(); HibernateUtil.sessionFactory.closeを(); } プライベート ボイド updateUsers()スロー例外 { // オープンセッション セッション=セッションHibernateUtilの。 currentSession(); // 開始トランザクション トランザクションTX = session.beginTransaction(); // バッチ更新HQL文の定義 文字列hqlUpdate = "ユーザー名を更新= SET U:NEWNAME"を; //は更新を実行します INT updatedEntities = session.createQuery(hqlUpdate) .setString( "NEWNAME"を、 "新名字" ) .executeUpdate(); // 提交事务 tx.commit(); HibernateUtil.closeSession(); } }