TIL 20일_2차

Moon-Tree·2023년 1월 26일
1

♣ Oracle과 JAVA

◆ Spring JDBC DELETE

  • PK(primary key)를 이용해서 단일 데이터를 삭제하는 형태로만 구현
  • 수정과 동일하게 결과 행 수를 토대로 삭제 성공/실패를 판정한다.

◆ Spring JDBC UPDATE

  • PK(primary key)를 사용하여 하나의 행만 수정하도록 구문을 구현
  • update store set name = ?, type = ?, where no = ?;
  • 등록과 다른 점은 실행이 되더라도 적용 대상이 있거나 없을 수 있다는 것이다.

◆ Spring JDBC select

  • insert, update, delete 처럼 구현하면 원하는 결과를 얻을 수 없다.

  • 조회 결과(ResultSet)를 어떻게 담을 것인지를 정의해야 한다.

  • 조회 결과를 담기 위한 객체 생성용 클래스가 필요(DTO, Data Transfer Object)

  • 변환 방법을 정의하는 객체를 생성(RowMapper)

  • mapRow 메소드에 기본 제공하는 ResultSet을 StoreDto로 이동하도록 구현

  • 조회를 위한 별도의 명령을 사용(query)

  • 조회에서 홀더(?)를 사용하는 방법

  • 항목은 데이터가 아니므로 홀더(?)를 사용하지 못한다.

    	String sql = "select * from store where instr(name, ?) > 0";
    	Object[] param = {keyword}; //홀더만 **{}** 안에 변수를 기입.
  • 단일 조회(상세 조회)
    - 단 하나의 데이터만 조회하기 위한 형태
    - PK(primary key)를 이용하여 조회

◆ JdbcUtils

  • Spring JDBC에 사용하는 도구들을 생성해주는 유틸리티

  • static 메서드로 구현해서 간단하게 호출하여 사용 가능하도록 구현

  • 다른 클래스에서 아래와 같이 한 문장으로 호출하여 긴 코드를 간편히 사용할 수 있다.
    JdbcTemplate jdbcTemplate = JdbcUtils.getJdbcTemplate();

    public class JdbcUtils {
    
    	//계정 및 연결 주소를 상수 형태로 보관
    	public static final String DRIVER = "oracle.jdbc.OracleDriver";
    	public static final String URL = "jdbc:oracle:thin:@localhost:1521:xe";
    	public static final String USERNAME = "USERNAME";
    	public static final String PASSWORD = "PASSWORD";
    
    	//연결 객체 생성 메서드
    	public static DriverManagerDataSource getDataSource() {
    		DriverManagerDataSource dataSource = new DriverManagerDataSource();
    		dataSource.setDriverClassName(DRIVER);
    		dataSource.setUrl(URL);
    		dataSource.setUsername(USERNAME);
    		dataSource.setPassword(PASSWORD);
    		return dataSource;
    	}
    
    	//명령 실행 객체 생성 메서드
    	public static JdbcTemplate getJdbcTemplate() {
    		JdbcTemplate jdbcTemplate = new JdbcTemplate();
    		jdbcTemplate.setDataSource(getDataSource());
    		return jdbcTemplate;
    	}
    }
profile
Backend Developer

0개의 댓글