[java,#6]JPAを使用してデータを格納および照会する(get)


0、目的および例


0.1目的


JPAを使用してRDBMSにデータを入力および照会する
JPAはjavaコードを使用してSQLを実行する方法です.JPAは2つの言語を学習する時間を節約し,効率的な符号化を可能にした.
今はJPAとは何か知っていますが、実際にどのように使われているのか見てみましょう.

0.2例


RDBMSにAirraftテーブルを作成します.
そのため、大きく4段階に分けられます.
①JPAの使用を発表する.
②テーブルの作成と定義.モデル名とメーカーをフィールドに設定します.
③引き継ぐ.データ作成日と変更日を継承します.
④JPAを実行します.データを入力してクエリーします.
JPAを利用してRDBMSに飛行機表を作成します.モデル名、製造元、データ作成日、変更日フィールドが作成され、データ作成日と変更日が継承されます.テーブル宣言が完了した場合は、データを保存してクエリーします.

1.JPA声明の使用


1.0目標と結果

  • 目的:JavaにJPAの使用を認識させる.
  • 結果:JPAを有効にし、どのフォーマットを使用するかを設定します.
  • JPA宣言の目的はJavaのJPAを識別することである.このためには、次の場所でスクリプトを作成し、コードを記述する必要があります.

    1.1 JPA起動声明


    1.1.1スクリプトの作成と配置

  • 目的:JPA(オープン)
  • の使用を発表
  • スクリプト名:アプリケーション.properties(既存)
  • :main>java>resources>アプリケーション.properties
  • まず、JPAを使うように伝えることです.次のコードを作成します.

    1.1.2コード

    spring.h2.console.enable=true // 스프링에서 h2 콘솔(관리자모드)를 사용할 수 있도록 하자.
    spring.datasource.url=jdbc:h2:mon:testdb // 데이터소스 주소는 jdbc:h2:mon:testdb 이다.

    1.2 JPAの使用方法の設定


    1.2.1スクリプトの作成と配置

  • 目的:JPAメソッド
  • の構成
  • スクリプト名:AirbaftRepository(新規作成)
  • 生成位置:main>java>com.sparta.week02 > domain > AircaftRepository
  • 次に、JPAの使い方を設定します.

    1.2.2コード

    // 목적: JPA 상속 방법 설정
    
    public AircraftRepository<Aircraft, Long> {}

    2.テーブルの作成と読み込み


    2.0目標と結果

  • 目的:テーブルを作成し、変数を使用する方法を定義します.
  • 結果:tableフィールド定義とgetter、ジェネレータ定義

    2.1スクリプトの作成と配置

  • 目的:table
  • を作成する
  • スクリプト名:Aircraft
  • 位置:java>main>com.sparta.week02 > domain > Aircraft
  • 2つ目はtableに関連する動作を定義することです.tableの作成とtableの動作の変更を定義するコードは、次のとおりです.

    2.2コード

    // 목적: table 생성 및 데이터 생성 방법 설정
    
    @NoArgConstructor // 기본생성자 자동 생성
    @Entity //  table이라는 것은 인식하도록 함
    public class Aircraft() {
      
      
      //1. 테이블 생성
      @Id
      @GenerateValue(Strategy=GenerateType.AUTO)
      private Long Id;
      
      @Column(nullable=false)
      private String model;
      
      @Column(nullable=false)
      private String manufacturer;
    
    
      //2. Getter: table에서 data 가져올 때 사용
      public String getModel() {
        return this.model;
      }
      
      public String getManufaturer() {
        return this.manufaturer;
      }
      
      
      //3. 생성자: table에서 데이터 생성 시 활용
      public Aircraft(String model, String manufaturer) {
        this.model = model;
        this.manufaturer = manufacturer;
      }
      
      
    }
    

    3.継承


    3.0目標と結果


    目的:データ作成日と変更日を設定した後、
  • を継承する
    結果:表に挿入されたデータ作成日と変更日

  • 3.1スクリプトの作成と定義

  • スクリプト名:タイムスタンプ(生成)
  • 生成位置:main>java>com.sparta.week02 > domain > Timestamped
  • 3.2コード

    // 목적: 상속하기
    
    @MappedSuperClass // 상속 시, 컬럼으로 인식하도록 함
    @EntityListeners(AuditingEntityListener.class) // 생성/수정을 자동으로 반영
    public class Timestamped {
      
      @CreatedDate // java 인식: 데이터 최초 생성 날짜
      private LocalDateTime generatedAt;
      
      @LastMoifiedDate // java 인식: 데이터 마지막 수정 날짜
      private LocalDateTime modifiedAt;
    
    }

    4.運転


    4.0目標と結果

  • 目的:JPAを使用してSQLコマンド
  • を実行
    結果:データストレージ、クエリー、および出力

    4.1スクリプトの作成と定義

  • 目的:JPAが
  • を本格的に稼働させる
  • スクリプト名:Week 02 Application
  • 生成位置:main>java>com.sparta.week02 > week02Application
  • 4.2コード

    // 목적: JPA를 이용하여 SQL 작동시킴
    
    @EnableJpaAuditing // 상속 행위 반영
    @SpringBootApplication // 웹 어플리케이션이라는 것을 명시함
    public class week02Application {
    	 @Bean
        public CommandLineRunner demo(AircraftRepository repository) {
            return (args) -> {
            
            // 1. 데이터 생성
            Aircraft aircraft1 = new Aircraft("B737", "Boeing");
            
            // 2. DB에 데이터 저장
            repository.save(aircraft1);
            
            // 3. 데이터 조회하기
            // 3.1 리스트 가져오기
            List<Aircraft> aircraftList = repository.findAll();
            
            // 3.2 현시하기
            for (int i=0;i=aircraftList.size();i++){
              Aircraft a = aircraftList.get(i);
              system.out.println( a.getModel() );
              system.out.println( a.getManufacturer() );
            }
    
        };
    }
    
    }