[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 작업 순서

  1. DB 연결을 위한 Connection을 가져옴
  2. SQL을 담은 Statement(or PreparedStatement)를 만듬
  3. 만들어진 Statement 실행
  4. SQL 쿼리 실행 결과를 ResultSet으로 받아서 저장할 객체에 옮겨준다.
  5. 작업중에 생성된 Connection, Statement, ResultSet과 같은 리소스는 작업 후 반드시 닫아줌.
  6. 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;
                    
  }
}