- 추가해줘야 할 코드
implementation 'org.springframework.boot:spring-boot-starter-jdbc'
implementation group: 'com.oracle.database.jdbc', name: 'ojdbc6', version: '11.2.0.4'
#encoding
- server.servlet.encoding.charset=UTF-8
- server.servlet.encoding.force=true
- server.servlet.encoding.enabled=true
✔ 본인의 DB정보에 맞게 설정
#dbms
- spring.datasource.url=jdbc:oracle:thin:@localhost:1521:XE
- spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
- spring.datasource.username=myspring
- spring.datasource.password=myspring
✔ jdbcRepository.java에 DB 연결을 위해 DataSource 받음
public class JdbcMemberReporsitory implements MemberRepository{
private final DataSource dataSource;
@Autowired
public JdbcMemberReporsitory(DataSource dataSource) {
this.dataSource = dataSource;
}
}
✔ 기존 JDBC 방법으로 DB연결하기
public class JdbcMemberReporsitory implements MemberRepository{
private final DataSource dataSource;
@Autowired
public JdbcMemberReporsitory(DataSource dataSource) {
this.dataSource = dataSource;
}
@Override
public Member save(Member member) {
String sql = "INSERT INTO MEMBER VALUES (member_seq.nextval, ?)";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = dataSource.getConnection();
String generatedColums[] = {"ID"};
pstmt = conn.prepareStatement(sql, generatedColums);
pstmt.setString(1, member.getName());
pstmt.executeUpdate();
rs = pstmt.getGeneratedKeys();
if(rs.next()) {
member.setId(rs.getInt(1));
}
}catch(Exception e) {
e.printStackTrace();
}finally {
try {
rs.close();
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return member;
}
@Override
public List<Member> findAll() {
String sql = "select * from member";
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
List<Member> members = null;
try {
conn = dataSource.getConnection();
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
members = new ArrayList<Member>();
while(rs.next()) {
Member member = new Member();
member.setId(rs.getInt("id"));
member.setName(rs.getString("name"));
members.add(member);
}
}catch(Exception e) {
e.printStackTrace();
}finally {
try {
rs.close();
pstmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return members;
}
}