728x90
▶Spring JDBC
-Spring Framework는 JDBC 프로그래밍을 위해 JdbcTemplate 클래스 제공함
-JdbcTemplate 클래스는 SQL 쿼리문 구현 쉽게 돕는다
▶[Spring JDBC 사용 절차]
① 프로젝트 새성 및 관련 모듈 추가
② DB 테이블 생성 (데이터 구조)
- 사용할 계정 생성 후 DB 테이블을 데이터 구조에 맞게 생성한다.
③ 자바 설정 파일에 ‘DataSource 객체’ 빈 등록 후 (DB 연결 정보 세팅)
//DataSource 객체 : DB 접속 정보 갖는 객체임
@Bean
public BasicDataSource source() {
BasicDataSource source = new BasicDataSource();
source.setDriverClassName("oracle.jdbc.OracleDriver"); source.setUrl("jdbc:oracle:thin:@localhost:53056:orcl");
source.setUsername("scott");
source.setPassword("1234");
return source;
}
④ ‘JdbcTemplate 객체’ 빈 등록 시, DataSource 객체 이용 -> DB 연결함
//데이터베이스에 접속해서 쿼리 전달하는 빈 등록
@Bean
public JdbcTemplate db(BasicDataSource source) { //DataSource 객체를 여기서 등록 -> DB와 연결
JdbcTemplate db = new JdbcTemplate(source);
return db;
}
⑤ 데이터 객체 + DB 관리용 DAO 객체 생성
- 데이터 객체 : DB 테이블 구조에 맞게 내부 필드 갖는 ‘데이터 객체’ 생성 (@Component)
@Component
@Scope("protytype")
public class JdbcBean { //DB의 데이터 구조에 맞는 데이터 객체
//필드
private int int_data;
private String str_data;
//get/set()
public int getInt_data() {
return int_data;
}
public void setInt_data(int int_data) {
this.int_data = int_data;
}
public String getStr_data() {
return str_data;
}
public void setStr_data(String str_data) {
this.str_data = str_data;
}
}
- DAO 객체 : 내부에 필드로 JdbcTemplate 갖고 주입받는다. DB 쿼리문 전달용 객체임
: 여기서 데이터 처리 관련 메소드 생성하여 전체적인 데이터 처리 주관.
@Component
public class JdbcDAO { //DB 관리용 객체
//필드
@Autowired
private JdbcTemplate db;//JDBC 관리 객체 주입받기 : DB 쿼리문 전달용 객체
//데이터 가져오기
//데이터 저장
//데이터 변환
//데이터 삭제
}
}
⑥ main()에서 DAO 객체 getBean() 해서 데이터 관리하면 됨 (DB에도 동시 세팅이 됨)
▶데이터 처리 세부내용
▷[insert 처리 : DB에 값 저장]
① DAO 클래스 안에 Isert 메소드 작성
//저장- DB에 데이터 주입 메소드
public void insert_data(JdbcBean bean) { //주입할 데이터 객체 넣기
String sql = "insert into jdbc_table (int_data, str_data) values(?,?)"; //sql 쿼리문 작성
db.update(sql, bean.getInt_data(), bean.getStr_data()); //db 에 쿼리문 내용대로 데이터 주입
}
② main()에서 getBean() 하여 insert 실행
//[DB insert]
//DB에 주입할 데이터 객체 세팅-(1)
JdbcBean bean1 = new JdbcBean(); //주입할 객체
bean1.setInt_data(1);
bean1.setStr_data("문자열1");
//DB에 주입
dao.insert_data(bean1);
//DB에 주입할 데이터 객체 세팅-(2)
JdbcBean bean2 = new JdbcBean();
bean2.setInt_data(2); bean2.setStr_data("문자열2");
//DB에 주입
dao.insert_data(bean2);
System.out.println("저장완료");
▷[delete 처리 : DB 속 일부 데이터 삭제 ]
① DAO 클래스 안에서 delete() 메소드 작성
//데이터 삭제
public void delete_data(int int_data) {
String sql = "delete from jdbc_table where int_data = ?";
db.update(sql, int_data);
}
② main()에서 delete 실행
//[DB delete]
dao.delete_data(1);
▷[update 처리 : DB 속 일부 데이터 수정 ]
① DAO 클래스 안에서 update() 메소드 작성
//데이터 수정
public void update_data(JdbcBean bean) {
String sql = "update jdbc_table set str_data = ? where int_data = ?";
db.update(sql, bean.getStr_data(), bean.getInt_data());
}
② main()에서 update 실행
//[DB update]
JdbcBean bean4 = new JdbcBean();
bean4.setInt_data(1);
bean4.setStr_data("문자열3");
dao.update_data(bean4);
▷[select 처리 : DB 속 값을 코드로 가져오기 ]
① Mapper 클래스 생성. implements RowMapper<데이터객체타입>
-Select문으로 데이터 가져올 때, 어떤 컬럼의 값을 bean 어디에 주입할지 결정해주는 역할 -이 클래스는 반드시, implements RowMapper<데이터객체타입> 구현 필수 -여기서 mapRow() 메소드 재정의해주어야 함 |
② DAO 클래스 안에서 Mapper 타입 필드 선언 후, select() 가져오기
//가져오기- DB 속의 데이터를 가져오는 메소드
public List<JdbcBean> select_data() {
String sql = "select int_data, str_data from jdbc_table";
List<JdbcBean> list = db.query(sql, mapper);
//쿼리문과 mapper클래스 담아서 쿼리시도하면 List 타입으로 데이터들 가져옴
return list;
}
③ main()에서 select 실행
//[DB select]- DB 속 데이터 가져오기
List<JdbcBean> list = dao.select_data();
for(JdbcBean bean3 : list) {
System.out.printf("int_data : %d\n", bean3.getInt_data());
System.out.printf("str_data : %s\n", bean3.getStr_data());
System.out.println("----------------------------------------");
}
728x90
'Web(웹)_관련 공부 모음 > [학교]_STS_Spring_실습' 카테고리의 다른 글
[학교]_11주차_MyBatis_JSP 실습 (0) | 2022.05.17 |
---|---|
[개념]_ MyBatis 라이브러리로 DB 관리 (0) | 2022.05.13 |
[개념]_@Transactional 트랜잭션 처리 (0) | 2022.05.11 |
[학교]_10주차_스프링 mySQL DB 쿼리 실습 (0) | 2022.05.11 |
[개념]_Spring _DB 연동 (0) | 2022.05.11 |