まず、Mavenプロジェクトを作成します
第二に、CRUDを実装
ツールの作成
パッケージcn.kgc.utils。 輸入javax.persistence.EntityManager。 輸入javax.persistence.EntityManagerFactory。 輸入javax.persistence.Persistence。 パブリック クラスJpautil { プライベート 静的のEntityManagerFactory工場。 静的{ // 根据永続创建のEntityManagerFactory对象の 工場= Persistence.createEntityManagerFactory( "myjpa" )。 } // 获得のEntityManager对象的方法 パブリック 静的のEntityManager getEntityManager(){ のEntityManagerはEntityManager =factory.createEntityManager(); 返すEntityManagerを。 } }
1、データを追加
データを追加する()メソッドを永続
// データを追加 @Test 公共 無効firstTest(){ // ツールでオブジェクトを取得したEntityTransaction のEntityManagerはEntityManager = Jpautil.getEntityManagerを(); // ビジネスオブジェクトを取得 たEntityTransactionトランザクション= entityManager.getTransaction(); // オープン事 transaction.beginを(); // エンティティ・クラス・オブジェクトを作成し、情報の10個 のためには、(int型 I = 0; Iは、10 <; Iは++ ){ カスタマーカスタマー = 新しい新規顧客(); customer.setName( "Liugaoヤン" ); customer.setSex("男性" ); customer.setAge( 18 ); customer.setAddres( "鄭州市" ); // のEntityManagerオブジェクトは、データベースにデータを追加する方法持続使い方5 EntityManager.persist(顧客は); } // 物事を提出 transaction.commit (); // 接続閉じ entityManager.closeを(); // factory.close(); }
ID照会データに基づいて2、
方法を見つけます
getReference()方法
// データidを照会するよる // データベース照会するfindメソッドを使用 // 機能: // 1、オブジェクトが現在のオブジェクトそのもの自体照会することで // 2を使用すると、findメソッドを呼び出すときに、SQL文が送信されます 。// このメソッドはすぐに呼ばれていますロード @Test 公共 無効testFind(){ // 取得EntityManagerのコアオブジェクトは、データベースに動作することを目的とする のEntityManagerはEntityManager = Jpautil.getEntityManagerを(); // 取得したEntityTransaction事業は、オブジェクト たEntityTransactionたEntityTransaction = entityManager.getTransactionを(); // 開いているもの entityTransaction.begin(); // クエリメソッドIDを実行します = EntityManager.findカスタマーカスタマー(顧客。クラス、3 ); System.out.printlnは(顧客); //は、物事提出 entityTransaction.commitを(); // コアクラスを閉じて、リソースの解放は (entityManager.close); } // クエリデータIDに応じ // getReferenceメソッドを使用 // 機能: // 1、問い合わせの方法は、動的プロキシオブジェクトです // 2、すぐにデータベースを照会するためのSQL文を印刷しますが、クエリオブジェクトを呼び出すことはありません参照方法を実行するとき、SQL文を呼び出します // ときにデータベースを照会するためにSQL文を送信するとき、すなわち // 遅延ローディングまたは遅延ロードになるための道 @Test 公共 ボイドtestReferenceを{)( // オブジェクトへのオブジェクトのEntityManagerを取得すると、データベースのコア動作で のEntityManagerはEntityManager = Jpautil.getEntityManager(); // ターゲットたEntityTransaction物事を得る たEntityTransactionたEntityTransaction = entityManager.getTransactionを(); // 物事に回し entityTransaction.beginを(); // 実行メソッドIDクエリ カスタマー顧客= entityManager.getReference(お客様。クラス、1 ); System.out.printlnは(顧客); // 物事提出 entityTransaction.commit()を; // コアクラスを閉じて、リソースの解放は (entityManager.close ); }
図3に示すように、データを修正するための方法
データベース格納されたデータを修正するためのマージ()メソッドの後
// 変更されたデータを保存)(データのマージを変更 @Test 公共 ボイド{)(testmergeを // 取得EntityManagerのコアオブジェクトは、データベースに動作することを目的とする のEntityManagerのEntityManager = ; Jpautil.getEntityManagerは() //がたEntityTransactionビジネスオブジェクトを取得 たEntityTransactionを=たEntityTransaction entityManager.getTransaction(); //は、物事オン entityTransaction.beginを(); //は、クエリID法に従って実行 顧客= entityManager.getReference(顧客顧客クラス、2 ); customer.setName( "曹操を" ) のEntityManager .merge(顧客)。 System.out.println(顧客); // 物事に提出する ; entityTransaction.commit() // コアクラスを閉じて、リソースの解放は (entityManager.closeを); }
4、データを削除
remove()メソッドは、データベースデータを削除するために使用され
// データケースを削除する @Test 公共 のボイド{)testRemoveを( // オブジェクトへのオブジェクトのEntityManagerを取得すると、データベースのコア動作で のEntityManagerはEntityManager = Jpautil.getEntityManager(); // ターゲットたEntityTransaction物事を得る たEntityTransactionたEntityTransaction = entityManager.getTransactionを(); // もの回し entityTransaction.beginを(); //はに従ってクエリID方法を実行 カスタマーCustomer1 = EntityManager.find(顧客クラス、3 ); //は削除操作 EntityManager.remove(Customer1) のSystem.out.println( customer1); // 物事に提出する ; entityTransaction.commit() // コアクラスを閉じて、リソースの解放は (entityManager.closeを); }
5、JPQLに基づいてすべてのクエリ
// クエリはすべて作成JPQLベース @Testが 公共 のボイドのfindAll(){ // オブジェクトのEntityManager取得 のEntityManagerはEntityManager = ; Jpautil.getEntityManager() // 取得のEntityManagerから作成されたベースのJPQLクエリオブジェクト // "お客様SELECT * FROM":SQLステートメントをここではお客様がテーブルを参照 // JPQL声明:「顧客からの」データエンティティクラスの顧客のすべてを照会することを意味し、ここでは顧客の価値は、エンティティクラスのある クエリのクエリ= entityManager.createQuery(「お客様から」); // getResultList ()メソッド:このメソッドは、メソッドのクエリオブジェクトであり、クエリはデータのコレクションオブジェクト戻り リスト<顧客> = resultList query.getResultList() のために(顧客顧客:resultList){ System.out.println(顧客); } // 接続を閉じる (entityManager.close); }
JPQLページングクエリに基づいて6、
setFirstResultメソッド()は最初の数からクエリの始まりを表し、
setMaxResults()ページの表示回数を表し
// 設定されたページ情報 @Test 公共 ボイドfianAllWithPage(){ // EntityManagerの作成 のEntityManagerはEntityManager = Jpautil.getEntityManagerを(); // クエリオブジェクトを取得する // 意味し、「お客様から」そのデータエンティティクラスの顧客クエリのすべて顧客エンティティクラスは価値がある = entityManager.createQuery(「から顧客」のクエリクエリ); // 設定されたページ情報 query.setFirstResult(5); //は、最初のいくつかの開始からの照会表し query.setMaxResults(10); //は、それぞれを表しページの表示回数 //は、すべてのデータのクエリを取得し、セットリストを返す 一覧<顧客> = resultList query.getResultListを(); について(顧客の顧客:resultList){ System.out.printlnは(顧客)。 } }
IDクエリベースのJPQLによれば7、
// JPQL IDチェックによって @Test 公共 無効findJpqlid(){ のEntityManagerはEntityManager = Jpautil.getEntityManager(); // クエリオブジェクトを取得 // "お客様からのWHERE ID =?"クエリ顧客のオブジェクトIDの表現 クエリのクエリ = EntityManagerを。 CreateQuery( "お客様からのWHERE ID =?" ); // 設定された値のプレースホルダ。最初のパラメータは、プレースホルダの位置、第2のパラメータ値のプレースホルダーである query.setParameter(1,1 ); // クエリを行う 顧客、カスタマー= (顧客)query.getSingleResultを(); のSystem.out。 println(、カスタマー); // リソース閉じ entityManager.closeを(); }
8、JPQLファジークエリベース
// JPQLあいまいクエリ @Test 公共 ボイドfindJpqlByName(){ のEntityManagerはEntityManager = Jpautil.getEntityManager(); // 「??セックスや名前などの顧客からのように」名前と性別によってそのあいまいクエリを意味し 、クエリのクエリ= EntityManagerを。 CreateQuery(「などと性別など顧客WHERE名から??」); // 最初のパラメータプレースホルダの位置のためのパラメータを設定し、第2のパラメータ値のプレースホルダー query.setParameter(1、「%のCaO % " ); query.setParameter( 2、「%のM%"を); //は、クエリーの実行 リスト<顧客> = resultList query.getResultListを(); System.out.printlnは(resultList); // リソースを閉じます entityManager.close(); }
9、昇順降順クエリベースのJPQL
@Test 公共 ボイドfindAllByOrder(){ のEntityManagerはEntityManager = Jpautil.getEntityManager(); クエリのクエリ = entityManager.createQuery( "DESCにより、顧客IDからの注文"); // クエリを降順の場合はDESC、 // クエリクエリentityManager.createQuery =( 「ASCによる顧客のIDからの注文」); // クエリ昇順ためのASC // getResultList()メソッドは、すべてのデータ・オブジェクトがセットのクエリ一覧を返し 一覧<顧客> = resultList ; query.getResultListを() のためresultList):(カスタマーお客様{ のSystem.out.println(顧客); } entityManager.close(); }
10、集約関数に基づくクエリJPQL
// 集約関数 @Test 公共 無効findAllCount(){ のEntityManagerはEntityManager = Jpautil.getEntityManager(); クエリのクエリ = entityManager.createQuery( "お客様からCOUNT(*)を選択"); // ルックアップテーブルの列をどのように多くのお客様情報 // この方法は、統計の数が示す オブジェクト顧客= query.getSingleResult(); のSystem.out.println(顧客); entityManager.close(); }