티스토리 뷰

728x90
반응형

1. JDBC(Java Database Connectivity)

  • 자바 애플리케이션에서 데이터베이스(DB) 프로그래밍을 할 수 있도록 도와주는 표준 인터페이스이다.
  • 표준이기 때문에 DBMS 종류에 상관이 없다.
  • JDBC 인터페이스들을 구현한 구현체들은 각 DB 벤더 사들이 제공해주며 이를 JDBC 드라이버라 한다.
  • 자바 코드에서는 보통 JDBC 인터페이스에만 의존하기 때문에 DB가 바뀌더라도 코드를 수정이 필요 없다.

2. JDBC 실습

(1) 의존성 추가

implementation(‘com.zaxxer:HikariCP:5.0.1’)
implementation(‘org.sptingframework:splitng-jdbc:5.3.22’)

// assert
testImplementation(‘org.assertj:assertj-core:3.22.0’)

// database
testImplementation(‘com.h2database:h2:2.1.214’)

 

(2) 구현참고사항 

  • UserDaoTest
    • setUp 메서드를 생성하면 @BeforeEach 어노테이션이 붙는데, 테스트 코드를 실행하기 앞서 수행되어야 하는 것이 있다면 실행되는 코드이다.
    • setup 메서드에는 ResourceDatabasePopulator를 생성해주고, db schema sql을 리소스에서 불러와 준다.
      • db schema sql 은 resources 아래 있고, 테이블 스키마를 의미한다. 예를 들어 USERS 테이블에 ID, passward, name email 등의 컬럼이 있고, 크기나 primary key 등의 정보를 명시한다.
  • ConnectionManager : HikariCP를 여기서 데이터 소스를 생성하는데 사용한다. (getDataSource 메소드 사용) 기본 정보로는 드라이버, url, name, password가 사용된다.
  • CreateTest 테스트 메소드
    •  userDao(data access object) 객체를 생성하고, userDao가 DB에 사용자 정보를 저장(create)하는 역할과 user 정보를 조회(findByUserId)하는 역할을 하는지 테스트 한다.
    • 테스트 코드를 작성한 뒤, 각각의 객체 클래스(UserDao, User)를 생성한다.
  • User : 스키마에 나온 컬럼과 같은 인자들을 갖도록 구현하고, 모든 인자에 대한 getter를 구현한다. 또한 비교를 위해 equals() and hashCode()도 구현해준다.
  • UserDao
    • getConnection : url주소와 id, passward를 통해 커넥션을 받아온다.
    • create : getConnection 메서드로 커넥션을 받아오고, sql의 INSERT를 사용하여 테이블에 user 정보를 입력한다. finally 에서 자원을 해제해준다. (자원 해제 시 거꾸로 해줘야 함)
    • findByUserId : create와 유사하지만 sql의 SELECT를 사용하며 결과값을 User객체로 받는 차이가 있다.
  • sql문을 작성할 때, ?가 사용되고 setString을 통해 각 ? 위치에 값을 넣어준다.
con = getConnection();
String sql = “SELECT userID, password, name, email FROM USERS WHERE userId = ?”’
pstat = con.prepareStatement(sql);
pstat.setString(1, userId);
pstat.executeQuery();

  


 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://bit.ly/43z0P6S

 

 

#패스트캠퍼스 #포트폴리오 #직장인자기계발 #환급챌린지 #포트폴리오챌린지 #패스트캠퍼스후기 #초격차패키지 #오공완

728x90
반응형
댓글