inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

DataSourceUtils

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

커뮤니티에서 확인한대로 프로젝트를 닫고 buildgradle에서도 열어봤고 findById도 확인해 봤는데 계속 빨간 줄입니다,, package hello.hellospring.repository ; import hello.hellospring.domain.Member ; import org.springframework.jdbc.datasource.DataSourceUtils ; import javax.sql.DataSource ; import java.sql.* ; import java.util.ArrayList ; import java.util.List ; import java.util.Optional ; public class JdbcMemberRepository implements MemberRepository { private final DataSource dataSource ; public JdbcMemberRepository (DataSource dataSource) { this . dataSource = dataSource ; } @Override public Member save (Member member) { String sql = "insert into member(name) values(?)" ; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection() ; pstmt = conn.prepareStatement(sql , Statement. RETURN_GENERATED_KEYS ) ; pstmt.setString( 1 , member.getName()) ; pstmt.executeUpdate() ; rs = pstmt.getGeneratedKeys() ; if (rs.next()) { member.setId(rs.getLong( 1 )) ; } else { throw new SQLException( "id 조회 실패 " ) ; } return member ; } catch (Exception e) { throw new IllegalStateException(e) ; } finally { close(conn , pstmt , rs) ; } } @Override public Optional<Member> findById (Long id) { String sql = "select * from member where id = ?" ; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection() ; pstmt = conn.prepareStatement(sql) ; pstmt.setLong( 1 , id) ; rs = pstmt.executeQuery() ; if (rs.next()) { Member member = new Member() ; member.setId(rs.getLong( "id" )) ; member.setName(rs.getString( "name" )) ; return Optional. of (member) ; } else { return Optional. empty () ; } } catch (Exception e) { throw new IllegalStateException(e) ; } finally { close(conn , pstmt , rs) ; } } @Override public List<Member> findAll () { String sql = "select * from member" ; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection() ; pstmt = conn.prepareStatement(sql) ; rs = pstmt.executeQuery() ; List<Member> members = new ArrayList<>() ; while (rs.next()) { Member member = new Member() ; member.setId(rs.getLong( "id" )) ; member.setName(rs.getString( "name" )) ; members.add(member) ; } return members ; } catch (Exception e) { throw new IllegalStateException(e) ; } finally { close(conn , pstmt , rs) ; } } @Override public Optional<Member> findByName (String name) { String sql = "select * from member where name = ?" ; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = getConnection() ; pstmt = conn.prepareStatement(sql) ; pstmt.setString( 1 , name) ; rs = pstmt.executeQuery() ; if (rs.next()) { Member member = new Member() ; member.setId(rs.getLong( "id" )) ; member.setName(rs.getString( "name" )) ; return Optional. of (member) ; } return Optional. empty () ; } catch (Exception e) { throw new IllegalStateException(e) ; } finally { close(conn , pstmt , rs) ; } } private Connection getConnection () { return DataSourceUtils.getConnection( dataSource ) ; } private void close (Connection conn , PreparedStatement pstmt , ResultSet rs) { try { if (rs != null ) { rs.close() ; } } catch (SQLException e) { e.printStackTrace() ; } try { if (pstmt != null ) { pstmt.close() ; } } catch (SQLException e) { e.printStackTrace() ; } try { if (conn != null ) { close(conn) ; } } catch (SQLException e) { e.printStackTrace() ; } } private void close (Connection conn) throws SQLException { DataSourceUtils.releaseConnection(conn , dataSource ) ; } }

  • datasourceutils
  • MVC
  • spring
  • java
  • spring-boot
박재은 댓글 1 좋아요 0 조회수 570

인기 태그

인프런 TOP Writers

주간 인기글