完成JPA CRUD操作を使用します

基本的なCRUD操作を次のように

  1つの パッケージcn.itheima.test。
  2  
  3  インポートcn.itcast.domain.Customer。
  4  インポートcn.itcast.utils.JpaUtils。
  5  輸入org.junit.Test。
  6  
  7  インポートjavax.persistence.EntityManager。
  8  インポートjavax.persistence.EntityManagerFactory。
  9  インポートjavax.persistence.EntityTransaction。
10  インポートjavax.persistence.Persistence。
11  
12  パブリック クラスJpaTest {
 13  
14      / ** 
15       *测试JPA的保存
 16      *ケース:データベースへのクライアントを保存する
 17       JPAは、手順*
 18       * 1ロード工場プロファイル作成(エンティティマネージャファクトリ)オブジェクト
 19       エンティティによって* 2.エンティティマネージャファクトリマネージャは、取得した
 20の      * 3のGet業務をオブジェクト、オープントランザクション
 21の      * 4.完全なCRUD操作
 22       * 5は、トランザクション(トランザクションのロールバック)をコミット
 23の      * 6リリースリソース
 24       * / 
25      @Test
 26は     公共 ボイドtestSave(){
 27  //         // 1。負荷プロファイルの作成工場(エンティティマネージャファクトリが)オブジェクト
 28を //         のEntityManagerFactory =工場のPersistence.createEntityManagerFactory(「myJpa」);
 29  //         // 2.エンティティマネージャエンティティマネージャファクトリの取得
 30を //        EM = factory.createEntityManagerのEntityManager(); 
31である          のEntityManager EM = JpaUtils.getEntityManager();
 32          // 3取得トランザクションオブジェクト、開口トランザクション
33である          たEntityTransaction em.getTransaction TX =(); //は、トランザクションオブジェクト取得し
34である          (tx.begin ); // 開いているトランザクション
 35          // 4.完全なCRUD操作:データベース保存するには、クライアント
36          の顧客=顧客の新しい新しい顧客を();
 37 [          customer.setCustName( "チーチュアンポッドキャスト" );
 38で          customer.setCustIndustry( "教育" );
 39          // 保存し、
40          EM。持続(顧客); // 保存操作
 41          // 5トランザクションのコミット
42であり         ; tx.commit()
 43である         // 6リリースリソース
44がある         em.close();
 45          //        factory.close(); 
46である 
47      }
 48  
49      / ** 
50       * IDを顧客に応じて照会
 51       *照会するfindメソッドを使用します。
 52       * 1.オブジェクトクエリ自体は、現在のターゲット顧客である
 53       データベースのSQL文を照会するfindメソッドを呼び出すとき* 2に送信されます
 54       *
 55       *今のロード
 56       *
 57       *
 58       * /
59      @Test
 60      公共  ボイドtestFind(){
 61は         // のEntityManagerツールによって取得された1 
である62          のEntityManagerはEntityManager = JpaUtils.getEntityManager();
 63である         // 2取引口
64          たEntityTransaction TX = ; entityManager.getTransaction()
 65          TX。 ()開始;
 66          // 3. CRUDを-顧客IDクエリを
67          / ** 
68           *検索:IDをクエリデータ
 69           *クラス:データ型のクエリの結果は、エンティティクラスのバイトコードにパッケージすることが
 70           * ID:主キーの値の問い合わせ
 71           * / 
72         カスタマー= EntityManagerのお客様。検索(お客様。クラス、1L );
 73です         // System.out.print(顧客)のは、
 74          // 4.トランザクションコミット
75          ; tx.commit()
 76の         // 5.リリースリソース
77          EntityManagerを。クローズ();
 78      }
 79  
80      / ** 
81       顧客IDクエリ*
 82       * getReference方法
 83       * 1オブジェクトを取得し、動的プロキシオブジェクトにある
 84       * 2の方法は、直ちにコールgetReference SQLステートメントは、データベース照会送信しない
 85       * *文は、SQLクエリが送信されますとき、クエリ結果オブジェクトを呼び出す:使用する際に、データベースを照会するためにSQL文を送信するとき
86       *
 87       *遅延ローディング(遅延ロード)
 88       *得られた動的プロキシオブジェクトである
 89       * *使用した場合、照会しますかの使用
 90       * / 
91である     @Test
 92      公共  ボイドtestReference(){
 93          // 1。ツールによって取得されたEntityManagerの
94          のEntityManagerのEntityManager = JpaUtils.getEntityManager();
 95          // 2.取引口
96          たEntityTransaction TX = entityManager.getTransaction();
 97          tx.begin();
 98          // 3 CRUD - IDの顧客からの問い合わせ
99          / ** 
100          * GetReference:クエリIDに基づいてデータ
 101           *クラス:データ型のクエリの結果は、包装されるエンティティクラスバイトコード
 102           * ID:主キー値照会
 103           * / 
104          。カスタマー=カスタマーのEntityManager GetReference。(顧客クラス、 1L );
 105          System.out.print(顧客)の、
 106          // 4.トランザクションをコミット
107          (tx.commit)を、
 108の         // 5リリースリソース
109          entityManager.close();
 110      }
 111  
112      / ** 
113       *顧客のケースを削除する
 114       *
 115       * /
1 16      @Test
 117      公共  ボイドtestRemove(){
 1つの18          // ツールによって取得された1のEntityManager 
119          のEntityManagerはEntityManager = JpaUtils.getEntityManager();
 120          // 2.サービス
121          たEntityTransaction TX = entityManager.getTransaction();
 122          TX。 ;始める()
 123          // クライアントを削除する- 3 CRUD
 124  
125          // I顧客IDクエリ
126          顧客=顧客EntityManager.find(顧客。クラス、1L );
 127          // 削除を完了するためにII removeメソッド呼び出し
128         。EntityManagerの削除(顧客)を、
 129  
130          // 4.トランザクションコミット
131である         (tx.commit);
 132          // 5リリースリソース
133          entityManager.close();
 134      }
 135  
136      / ** 
137は、      顧客を更新するように動作する*
 138       マージ*(オブジェクト)
 139       * / 
140      @Test
 141が     公共  ボイドtestUpdate(){
 142          // のEntityManagerツールによって取得された1. 
143          のEntityManagerのEntityManager = JpaUtils.getEntityManager();
 144          //トランザクションを入れます
145          = TXたEntityTransaction entityManager.getTransactionを();
 146          tx.begin();
 147の         // 3. CRUD -更新操作
 148  
149          // 私は、クライアントクエリ
150          カスタマー顧客= EntityManager.find(お客様。クラス、1L );
 151          // II更新クライアント
152          customer.setCustIndustry( "IT教育" );
 153          。EntityManagerのマージ(顧客);
 154  
155          // 4.トランザクションコミット
156          )(tx.commitを、
 157          // 。5。リリースリソース
158         entityManager.close();
159      }
 160  
161 }

説明:()とgetReference()の違いを見つけます:

IDの顧客の問い合わせに応じて
    使用して検索する方法を照会するには:
    1.オブジェクトクエリオブジェクト自体は、現在のクライアントで
    データベースのSQL文を照会するfindメソッドを呼び出すときに送信されます。2. 
すぐにロードされ
============= ======================================== 
顧客クエリIDのに従ってgetReferenceの方法で
         取得した1オブジェクトは、動的プロキシオブジェクトである
         2.コールgetReferenceメソッドはすぐにデータベースを照会するためにSQL文を送信しない
             ときに使用するデータベースクエリを実行するSQL文を送信するとき、:SQL文がクエリを送信しますと、クエリの結果オブジェクトを呼び出すとき* 
遅延読み込みを(遅延ロード)
     * GETは動的プロキシオブジェクトで
     使用するための*は、どのような使用を照会う
    

 

おすすめ

転載: www.cnblogs.com/116970u/p/11589895.html