일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- JDBC
- 인프런
- Android
- Thymeleaf
- springdatajpa
- 알고리즘
- Greedy
- pointcut
- spring
- java
- http
- AOP
- 스프링 핵심 원리
- db
- Exception
- 백준
- SpringBoot
- transaction
- jpa
- 김영한
- QueryDSL
- JPQL
- Proxy
- Spring Boot
- 스프링 핵심 기능
- 자바
- kotlin
- Servlet
- 그리디
- 스프링
- Today
- Total
목록인프런/[인프런] 스프링 DB 1편 - 데이터 접근 핵심 원리 (22)
개발자되기 프로젝트
수정과 삭제는 앞서 살펴본 등록과 비슷하다. 데이터를 변경하는 쿼리를 executeUpdate()를 통해 실행하면 된다. 두 메서드는 쿼리만 다르고 전체 흐름을 동일하다. public void update(String memberId, int money) throws SQLException { String sql = "update member set money=? where member_id=?"; Connection con = null; PreparedStatement pstmt = null; try { con = getConnection(); pstmt = con.prepareStatement(sql); pstmt.setInt(1, money); //첫 번째 파라미터 바인딩 pstmt.setStrin..
MemberRepositoryV0 - 회원 조회 추가 public Member findById(String memberId) throws SQLException { String sql = "select * from member where member_id=?"; Connection con = null; PreparedStatement pstmt = null; ResultSet rs = null; try{ con = getConnection(); pstmt = con.prepareStatement(sql); pstmt.setString(1, memberId); rs = pstmt.executeQuery();//select는 executeQuery if (rs.next()){//데이터 있으면 true, 내부..
JDBC를 사용해서 회원(Member)데이터를 관리하는 기능을 개발한다. Member package hello.jdbc.domain; import lombok.Data; @Data public class Member { private String memberId; private int money; public Member() { } public Member(String memberId, int money) { this.memberId = memberId; this.money = money; } } MemberRepositoryV0 - 회원 등록 Statement: SQL을 그대로 전달 PreparedStatement: Statement상속 받음, 파리미터 바인딩 가능. package hello.jdbc...
ConnectionConst package hello.jdbc.connection; public abstract class ConnectionConst { public static final String URL = "jdbc:h2:tcp://localhost/~/dbtest"; public static final String USERNAME = "sa"; public static final String PASSWORD = ""; } DB에 접속하는데 필요한 기본 정보를 편리하게 사용하도록 상수로 만들었다. 이 때 해당 클래스는 객체로 생성하지 못하도록 abtract로 막아두었다. DBConnectionUtil package hello.jdbc.connection; import lombok.extern.s..
JDBC는 1997년에 출시될 정도로 오래된 기술이며, 사용하는 방법이 복잡하다... 그래서 최근에는 JDBC를 편리하게 사용하는 다양한 기술이 존재한다. 대표적으로 SQL Mapper와 ORM 기술로 나눌 수 있다. JDBC 직접 사용 SQL Mapper 장점: JDBC를 편리하게 사용하도록 도와준다. - SQL 응답 결과를 객체로 편리하게 변환해준다. - JDBC의 반복 코드를 제거해준다. 단점: 개발자가 SQL을 직접 작성해야한다. 대표 기술: 스프링 JdbcTemplate, MyBatis ORM 기술 ORM은 객체를 관계형 데이터베이스 테이블과 매핑해주는 기술이다. 이 기술 덕분에 개발자는 반복적인 SQL을 직접 작성하지 않고, ORM 기술이 개발자 대신에 SQL을 동적으로 만들어 실행해준다. 추..
JDBC 등장 이유 애플리케이션을 개발할 때 중요한 데이터는 대부분 DB에 보관한다. 클라이언트, 애플리케이션 서버, DB 구조 클라이언트가 애플이케이션 서버를 통해서 DATA 저장, 조회를 한다고 하자. 이 때 애플리케이션 서버는 다음 과정을 통해서 DB를 사용한다. 애플리케이션 서버와 DB-일반적인 경우 커넥션 연결: 주로 TCP/IP를 사용해서 커넥션을 연결한다. SQL전달: 애플리케이션 서버는 위에서 연결된 커넥션을 통해 DB가 이해할 수 있는 SQL을 DB에 전달 결과 응답: DB는 전달된 SQL을 수행하고 결과를 응답. 애플이케이션 서버는 응답 결과를 받고 활용 애플리케이션 서버와 DB-DB변경 옛날에는 각 DB마다 커넥션을 연결하는 방법, SQL을 전달하는 방법, 결과를 응답받는 방법이 모두..