N° 01 — 목록

'JDBC' (2)

  1. Backend Development/Spring

    Spring - 10. data-access

    SQLException이 DataAccessException으로 바뀌는 순간 — 데이터 접근 추상화try { jdbcTemplate.queryForObject("SELECT name FROM users WHERE id = ?", String.class, id);} catch (SQLException e) { // 이 catch 블록은 실행되지 않는다}JdbcTemplate은 SQLException을 던지지 않는다. Spring은 모든 데이터 접근 예외를 unchecked DataAccessException 계층으로 변환한다 — 벤더별 에러 코드(MySQL 1062, PostgreSQL 23505, Oracle 1)를 통일된 타입(DuplicateKeyException 등)으로 매핑한다.이 글은..

    · 댓글
  2. Backend Development/Java

    Java - 21. jdbc

    Statement와 PreparedStatement의 차이가 SQL Injection을 막는 이유 — JDBC 기초// Java 25 — 위험: SQL Injection 취약Statement stmt = conn.createStatement();ResultSet rs = stmt.executeQuery( "SELECT * FROM users WHERE name = '" + userInput + "'");// userInput = "'; DROP TABLE users; --" → 테이블 삭제!이 코드를 작성한 개발자는 악의가 없었다. 그냥 문자열을 연결했을 뿐이다. 하지만 공격자가 '; DROP TABLE users; --를 입력하면 SQL 문이 두 개로 나뉘어 실행된다. PreparedStateme..

    · 댓글