2013-09-28 2 views
-1

저는 3 개의 필드에 정보를 수집하고, db에 해당 정보를 쓰고 (success.jsp에) 내 db의 모든 정보를 표시하는 첫 번째 Java 프로그램 (Struts2 사용)을 작성하고 있습니다. 표.PreparedStatement/ResultSet 및 Setters/Getters

getters/setter에 대한 많은 읽기와 데이터베이스에 데이터를/데이터에 액세스하는 동안 (내 인스턴스에서는 MySQL 데이터베이스), 한 가지 확실하지 않습니다. 내 액션 클래스에서

나는 PreparedStatement의이 있고이 ResultSet (쓰기와 MySQL의 DB에서 끌어) :

PreparedStatement pstmt = con.prepareStatement("INSERT INTO DBName(field1, field2, field3) VALUES(?, ?, ?);"); 
PreparedStatement pstmtSelect = con.prepareStatement("SELECT * FROM DBName"); 
{ 
    pstmt.setString(1, this.field1); 
    pstmt.setString(2, this.field2); 
    pstmt.setString(3, this.field3); 
    pstmt.executeUpdate(); 
    ret = SUCCESS; 

    ResultSet rset = pstmtSelect.executeQuery(); 
    while (rset.next()) { 
     field1 = rset.getString(1); 
     field2 = rset.getString(2); 
     field3 = rset.getString(3); 
     ret = SUCCESS; 
    } 
} 

내 질문은 : 나는 또한 내 액션 클래스에 다음 코드로 필요하십니까 그렇지 않습니까? 아니면 위의 내용을 무시합니까?

public String getField1() { 
    return this.field1; 
} 

public void setField1(String field1) { 
    this.field1 = field1; 
} 

public String getField2() { 
    return this.field2; 
} 
public void setField2(String field2) { 
    this.field2 = field2; 
} 

public String getField3() { 
    return this.field3; 
} 

public void setField3(String field3) { 
    this.field3 = field3; 
} 
+0

는 DAO 계층에 JDBC 코드를 더 이동에 대해 – ea0723

+1

한 가지 더 (하세요 OGNL 태그 로마를 추가 주셔서 감사합니다) 대신 액션 코드로 섞는다. 다른 레이어의 코드를 분리하여 MVC 프레임 워크를 사용하십시오. –

+0

고마워요 @RomanC - 훌륭한 조언 (Ruby에서는 별도의 모델을 만들었으므로 완벽한 의미를 갖습니다). – ea0723

답변

1

액션 클래스에서는 getter 및 setter가 필요하지 않습니다. 3 개의 필드가있는 빈에서 필요합니다. 액션 클래스에서 해당 빈의 인스턴스를 생성하고 setter를 호출하고 결과 집합에서 가져온 값을 설정할 수 있습니다. 그리고 표시하는 동안 getter를 호출하여 bean에서 방금 설정 한 값을 얻을 수 있습니다.

ResultSet rset = pstmtSelect.executeQuery(); 
      FieldBean field = new FieldBean();   
      while (rset.next()) { 
       field.setField1(rset.getString(1)); 
       field.setField2(rset.getString(2)); 
       field.setField3(rset.getString(3)); 
       ret = SUCCESS; 
      } 
+0

감사합니다, @Pratik. "진술하는 내용을 이해하고 있는지 확인하는 동안 getter를 호출하여 bean에 방금 설정 한 값을 가져올 수 있습니다." jsp에서 (각 필드에 대해 하나의 s : 속성)? – ea0723

+0

스트럿을 사용하고 있으므로 getter를 호출 할 필요가 없습니다. 프레임 워크가 당신을 위해 그것을 할 것입니다. 네,하지만 각 필드에 대해 하나씩 s : property 태그를 지정해야합니다. –

+0

위대한, 감사합니다 @Pratik! – ea0723