JPA概要



リファレンス
  • 金英漢インフラ講座-Java ORM標準JPAプログラミング-基本編
  • Java ORM標準JPAプログラミング
  • JPAとは?

  • 純JDBC登録
    以前は、オブジェクトをデータベースに保存するには、複雑なJDBC APIとSQLを一歩一歩作成する必要がありました.
  • //글쓰기 메소드
    	public int write(String title, String userID, String content) {
    		String sql = "insert into board values(?, ?, ?, ?, ?, ?)";
    		try {
    			PreparedStatement pstmt = conn.prepareStatement(sql);
    			pstmt.setInt(1, getNext());
    			pstmt.setString(2, title);
    			pstmt.setString(3, userID);
    			pstmt.setString(4, getDate());
    			pstmt.setString(5, content);
    			pstmt.setInt(6, 1); //글의 유효번호
    			return pstmt.executeUpdate();
    		}catch (Exception e) {
    			e.printStackTrace();
    		}
    		return -1; //데이터베이스 오류
    	}
  • JDBC Template, MyBatis
    その後,上のコードの複雑さを減らすためにSQL Mapperが出現し,開発コードが減少した.
    しかし、文字列typesafeではなくSQLを1つずつ書きます.
  • @Repository
    public class BoardDao {
    	private final String LIST_BOARDS = "select seq, title, left(regdate,16) regdate, id, writer, cnt from board order by seq desc limit ?, ?";
    	private final String SEARCH_BOARDS = "select seq, title, left(regdate,16) regdate, id, writer, cnt from board "
    			+ "where match(title) against(:keyword) or match(content) against(:keyword) order by seq desc limit :offset, :count";
    
    /**
    	 * 게시글 목록 조회
    	 * 
    	 * @param page  페이지
    	 * @param count 갯수
    */
    public List<Board> listBoards(Search search) {
    		return jdbcTemplate.query(LIST_BOARDS, BOARD_ROW_MAPPER,
    				search.getOffset(), search.getCount());
    	}
    }
  • JPA
  • JPAの登場は、開発の生産性と開発速度、メンテナンスの向上に優れています.
  • JPAが登場してから、SQL文も書く必要がなくなりました.
  • 段、学習曲線が高すぎます.
  • @Getter
    @NoArgsConstructor(access = AccessLevel.PROTECTED)
    @Entity
    public class Board {
    
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private Long id; // PK
    
        private String title; // 제목
    
        private String content; // 내용
    
        private String writer; // 작성자
    
        private int hits; // 조회 수
    }
    なぜ
  • JPA業務が困難なのですか?
  • は、オブジェクトとテーブルを正確に設計および販売する方法を知らない.
  • の例とは異なり、実際の動作では、数十個の複雑なオブジェクトとテーブルから構成されています.
  • JPAの内部の行為の方式を理解しないで、
  • を使います
  • JPAはどのようなSQLといつ生成された
  • を理解するのが難しい.

    の最後の部分


    最初の授業を聞いて、たくさん分かりました.今、JPAとは何か知っていますが、正確に言えば
    操作の仕方がわからない.この点を反省し、今回の講座を通じて、
    JPAの動きを知り、状態管理などいろいろ勉強して、自分でやろうと決心しました.
    きっかけになる.