JPA概要
リファレンス
JPAとは?
以前は、オブジェクトをデータベースに保存するには、複雑な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; //데이터베이스 오류
}
その後,上のコードの複雑さを減らすために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());
}
}
@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の動きを知り、状態管理などいろいろ勉強して、自分でやろうと決心しました.
きっかけになる.
Reference
この問題について(JPA概要), 我々は、より多くの情報をここで見つけました https://velog.io/@roberts/JPA-개요テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol