DB 테이블
CREATE TABLE USERS( ID VARCHAR(8) PRIMARY KEY, PASSWORD VARCHAR(8), NAME VARCHAR(20), ROLE VARCHAR(5) ); INSERT INTO USERS VALUES('test', 'test123', '관리자', 'Admin'); INSERT INTO USERS VALUES('user1', 'user1', '홍길동', 'User');
VO 클래스
package com.springbook.biz.user; public class UserVO { private String id; private String password; private String name; private String role; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getRole() { return role; } public void setRole(String role) { this.role = role; } @Override public String toString() { return "UserVO [id=" + id + ", password=" + password + ", name=" + name + ", role=" + role + "]"; } }
3.DAO 클래스
package com.springbook.biz.user.impl; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import com.springbook.biz.common.JDBCUtil; import com.springbook.biz.user.UserVO; public class UserDAO { //JDBC 관련 변수들 private Connection conn = null; private PreparedStatement stmt = null; private ResultSet rs = null; //SQL 명령어 private final String USER_GET = "SELECT * FROM USERS WHERE ID = ? AND PASSWORD = ?"; //CRUD 기능의 메소드 구현 //회원 상세 조회 public UserVO getUser(UserVO vo) { UserVO user = null; try { conn = JDBCUtil.getConnection(); stmt = conn.prepareStatement(USER_GET); stmt.setString(1, vo.getId()); stmt.setString(2, vo.getPassword()); rs = stmt.executeQuery(); if(rs.next()) { user = new UserVO(); user.setId(rs.getString("ID")); user.setPassword(rs.getString("PASSWORD")); user.setName(rs.getString("NAME")); user.setRole(rs.getString("ROLE")); } } catch(Exception e) { e.printStackTrace(); } finally { JDBCUtil.close(stmt, conn); } return user; } }
package com.springbook.biz.user; public interface UserService { //CRUD 기능의 메소드 구현 //회원 상세 조회 public UserVO getUser(UserVO vo); }
package com.springbook.biz.user.impl; import com.springbook.biz.user.UserService; import com.springbook.biz.user.UserVO; public class UserServiceImpl implements UserService{ private UserDAO userDAO; public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; } public UserVO getUser(UserVO vo) { return userDAO.getUser(vo); } }
package com.springbook.biz.user; import org.springframework.context.support.AbstractApplicationContext; import org.springframework.context.support.GenericApplicationContext; public class UserServiceClient { public static void main(String[] args) { //1. Spring 컨테이너를 구동한다. AbstractApplicationContext container = new GenericApplicationContext(); //2. Spring 컨테이너로부터 UserServiceImpl 객체를 LookUp한다. UserService userService = (UserService)container.getBean("userService"); //3. 로그인 기능 테스트 UserVO vo = new UserVO(); vo.setId("test"); vo.setPassword("test123"); //test12 라고 하면 없는 비밀번호라 로그인 실패 UserVO user = userService.getUser(vo); if(user != null) { System.out.println(user.getName() + "님 환영합니다."); } else { System.out.println("로그인 실패"); } //4. Spring 컨테이너 종료 container.close(); } }
1일차의 그림과 유사하니 그림설명은 패스