[spring] 데이터 접근 디자인 패턴
Template Method Pattern
JDBC 개념
인터페이스만 보고 작업을 한다.
JDBC DRIVER
를 사용한다.
JDBC 구현 순서
특정 DBMS 에ego당하는 Driver 로딩
DBMS 와의 Connection 연결
Statement 객체 생성
SQL 문에 파라미터 정보 설정
Statement 실행
ResultSet 처리하기 위한 Loop 문 실행
예외처리
트랜잭션 처리
Connection 해제
기본형태 생성
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
int result = 0;
try {
con = JDBCUtil.getConnection();
ps = con.prepareStatement(sql);
// prepareStatement Setter
// 실행
// 결과값 핸들링
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtil.close(rs, ps, con);
}
테스트 코드 작성
public static void main(String[] args) {
String[] config = {"applicationContext.xml"};
ApplicationContext context = new ClassPathXmlApplicationContext(config);
UserService service = (UserService) context.getBean("service");
UserVO user = new UserVO();
user.setUserid("java01");
user.setUserpwd("1234");
user.setUsername("홍씨");
user.setAddress("서울시");
user.setEmail("hong@n.com");
user.setPhone("000-0000-0000");
service.addUser(user);
System.out.println("======= list ======");
for(UserVO data: service.getUserList()){
System.out.println(data);
}
}
삭제 구문 추가후 다시 확인
service.removeUser(user.getUserid());
System.out.println("======= list ======");
for(UserVO data: service.getUserList()){
System.out.println(data);
}
수행결과
======= list ======
UserVO [userid=java01, username=홍씨, userpwd=1234, email=hong@n.com, phone=000-0000-0000, address=서울시]
UserVO [userid=admin, username=관리자, userpwd=a1234, email=admin@mc.co.kr, phone=02-1234, address=서울 역삼]
UserVO [userid=user01, username=길동이, userpwd=1234, email=hong@mc.co.kr, phone=00-0000, address=서울]
======= list ======
UserVO [userid=admin, username=관리자, userpwd=a1234, email=admin@mc.co.kr, phone=02-1234, address=서울 역삼]
UserVO [userid=user01, username=길동이, userpwd=1234, email=hong@mc.co.kr, phone=00-0000, address=서울]
업데이트 구문 완성
@Override
public int updateUser(UserVO user) {
String sql = "update userinfo set email=?,phone=?,address=? where userid = ? ";
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
int result = 0;
try {
con = JDBCUtil.getConnection();
ps = con.prepareStatement(sql);
// prepareStatement Setter
ps.setString(1, user.getEmail());
ps.setString(2, user.getPhone());
ps.setString(3, user.getAddress());
ps.setString(4, user.getUserid());
// 실행
result = ps.executeUpdate();
// 결과값 핸들링
} catch (Exception e) {
e.printStackTrace();
} finally {
JDBCUtil.close(rs, ps, con);
}
return result;
}
'Programming > Spring' 카테고리의 다른 글
[spring] iBatis, MyBatis Framework 아키텍처 (0) | 2016.04.24 |
---|---|
[Spring] JDBC 설정 (0) | 2016.04.24 |
[spring] 다국어 지원 (0) | 2016.04.22 |
[spring] Annotation 기반 AOP 설정 (0) | 2016.04.22 |
[spring] XML 기반 AOP 설정 (0) | 2016.04.21 |
댓글