[Java] 자바 스프링(spring) MVC 정리(2)
업데이트:
자바 스프링(spring) MVC 정리
DB -> MyBatis -> DAO -> Service -> Controller -> JSP
-
SqlSessionFactory: Mysql 서버와 MyBatis를 연결해주는 객체(DataSource를 이용)
-
MyBatis: 객체 지향 언어인 자바의 관계형 데이터 베이스 프로그래밍을 보다 쉽게 도와주는 프레임 워크
-
DAO(Data Access Object): DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 객체
-
자바빈(JavaBean): 파라미터가 없는 디폴트 생성자를 가지고 있어야 하며, get(접근자 메소드), set(수정자 메소드)를를 가지고 있어야한다.
// 사용자 정보 저장용 자바빈 User
public class User{
String id;
String name;
String password;
public String getId(){
return id;
}
public void setId(String id){
this.id = id;
}
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
public String getPassword(){
return password;
}
public void setPassword(String password){
this.password=password;
}
}
JDBC 작업 순서
- DB 연결을 위한 Connection을 가져옴
- SQL을 담은 Statement(or PreparedStatement)를 만듬
- 만들어진 Statement 실행
- SQL 쿼리 실행 결과를 ResultSet으로 받아서 저장할 객체에 옮겨준다.
- 작업중에 생성된 Connection, Statement, ResultSet과 같은 리소스는 작업 후 반드시 닫아줌.
- Exception 처리
public class UserDao{
public User get(String id) throws ClassNotFoundException, SQLException{
Class.forName("com.mysql.jdbc.Driver");
Connection c = DriverManager.getConnection(
"jdbc:mysql://localhost/springbook", "spring", "book");
PreparedStatement ps = c.prepareStatement("select * from users where id =?");
ps.setString(1, id);
ResultSet rs = ps.executeQuery();
rs.next();
User user = new User();
user.setId(rs.getString("id"));
user.setName(rs.getString("name"));
user.setPassword(rs.getString("password"));
rs.close();
ps.close();
c.close();
return user;
}
}