24.08.22 11:00 작성
·
220
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
순수 JDBC 를 공부 중인데 너무 복사붙여넣기가 많고 화면을 멈춰도 빨라요...어디꺼를 가지고 와야 붙여넣기를 해도 오류가 안생길까요?ㅜㅜ
package com.example.springpractice.repository;
import com.example.springpractice.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;
import static java.sql.DriverManager.getConnection;
import static org.apache.tomcat.util.descriptor.InputSourceUtil.close;
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;
}
@Override
public Optional<Member> findByName(String name) {
return Optional.empty();
}
@Override
public List<Member> findAll() {
return List.of();
}
}
답변 1
1
안녕하세요. mins199600님, 공식 서포터즈 OMG입니다.
코드 붙여넣기 하더라도 오류가 발생하는 이유는 강의와 다르게 패키지를 생성했기 때문입니다.
처음 프로젝트를 생성할 때 groupId와 artifactId를 지정할 때 강의와 동일하게 하지 않아
생성된 프로젝트의 패키지 구조가 강의와 다릅니다.
프로젝트를 강의 기준으로 생성한 다음 코드를 붙여넣으면 강의와 동일한 구조의 패키지구조가 되어 복사 붙여넣기 하더라도 오류 없이 세팅 될거에요.
속도 관련하여서는 강의 영상의 배속을 조절하여 수강하실 것을 권장드립니다.
그리고 제목의 내용 중
코드 복사 붙여넣기가 너무 많아서 어디꺼를 가지고 와야하는데 좀더 설명해주세요
강의 섹션 번호와 클래스 이름을 검색하여 찾으시면 참고해야하는 영역을 쉽게 확인하실 수 있습니다.
감사합니다.