백기선님 강의 중 Spring Data JPA에 대해서 정리를 해놓은 블로그입니다.
자세한 내용은 강의를 참고해주세요.
강의 링크
JDBC
- - (관계형) 데이터베이스와 자바의 연결 고리
- - 자바에서 JDBC를 통해서 데이터 베이스에 CRUD 작업을 진행합니다. 이는 데이터를 영속화 해야할 필요가 있기 때문입니다.
※ 애플리케이션을 껏다 켜도, 데이터가 유지되는 속성이 영속성입니다.
JDBC
- DataSource / DriverManager
- Connection
- PreparedStatement
SQL
- DDL
- DML
무엇이 문제인가?
- SQL을 실행하는 비용이 비싸다.
- SQL이 데이터베이스 마다 다르다.
- 스키마를 바꿨더니 코드가 너무 많이 바뀌네
- 반복적인 코드가 너무 많아.
- 당장은 필요가 없는데 언제 쓸 줄 모르니까 미리 다 읽어와야 하는지 모릅니다.
의존성 추가
실습
의존성 추가
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.22</version>
</dependency>
</dependencies>
docker를 이용해서 PostgreSql 설치
docker를 이용해서 PostgreSql 실행
docker exec -i -t postgres_boot bash
su - postgres
아래와 같이 접근을 하면 오류가 났습니다.
psql springdata
따라서 아래와 같이 username와 db 이름으로 입력을 해줘야 정상 실행이 가능합니다.
psql --username [유저이름] --dbname [db이름]
- DB 사용 예제 1
try(Connection connection = DriverManager.getConnection(url,username,password)){
System.out.println("Connection created: "+connection);
String sql = "CREATE TABLE ACCOUNT (id int,username varchar(255),password varchar(255))";
try(PreparedStatement statement = connection.prepareStatement(sql)){
statement.execute();
}
}
- DB 사용 예제 2
try(Connection connection = DriverManager.getConnection(url,username,password)){
System.out.println("Connection created: "+connection);
String sql = "INSERT INTO ACCOUNT VALUES(1,'hyeon','pass')";
try(PreparedStatement statement = connection.prepareStatement(sql)){
statement.execute();
}
}
'Spring > Spring Data JPA' 카테고리의 다른 글
[Spring Data JPA] 4. 엔터티 상태와 Cascade (0) | 2021.08.22 |
---|---|
[Spring Data JPA] 3. 엔티티 Value 관계 맵핑 (0) | 2021.08.08 |
[Spring Data JPA] 2. ORM 이란? & 패러다임 불일치 (0) | 2021.08.07 |