2014-10-07 5 views
0

이것은 코딩 표준과 관련된 질문입니다.Java 설정 준비 문

내가 겪고있는 문제는 클래스/생성자로서 준비된 명령문을 사용하는 데 어려움을 겪고 있다는 것입니다. (informix 배경에서 나왔습니다.

보통 내가 코딩 할 때 가능한 한 많이 메인 블록에서 스크립팅을 계속하고 내가 보여줄 예제 에서처럼 필요한 기능을 호출하는 것을 좋아합니다. 나는 또한 많은 슬래시가있는 구조를 과장하고있다.

public class Script { 

    ///////////////////////////////////////////////////////////////// start main 
    public static void main(String[] args) { 

     System.out.println("Script Is Starting"); // basic message 

     classCONN conn = new classCONN();   // connect class 
     Connection cnct = null;      // connect variable 
                // 
     try {          // try connect 
      conn.func_driverCheck();     // 
      cnct = conn.func_dbConnect();    // 
     } catch(SQLException log) {     // 
      System.out.println(log);     // 
     }           // 

     *i would like to call the prepare* 
     *statements function once for the* 
     *rest of the script* 

     classSQL sql = new classSQL();    // prepare statements 
     sql.func_prep(cnct);       // 

     users_sel.setString(1, "zoh");    // insert with prepared 
     users_sel.setString(2, "my");    // statements 
     users_sel.setString(3, "goodness");   // 
     row = users_sel.executeQuery();    // 

    } 
    ///////////////////////////////////////////////////////////////// end main 

    ///////////////////////////////////////////////////////////////// start classes 
    class classCONN { 

     public void func_driverCheck() {*code to check driver*} 

     public Connection func_dbConnect() {*code to connect to db*} 

    } 

    class classSQL { 

     *I would like to prepare my statements here* 

     public void f_prep(Connection cnct) { 
      lv_sql = "INSERT INTO users " + 
        "VALUES(?, ?, ?)"; 
      PreparedStatement users_ins = cnct.prepareStatement(lv_sql); 
     } 

    } 
    ///////////////////////////////////////////////////////////////// end classes 

} 

그래서 제 질문의 존재는 명령문이 준비되어 너무 일이 같은 코드를 얻을 수있는 방법이 있나요 후, 나는 실제로 준비하지 않고 다른 클래스 내부 또는 같은 주 또는 아무것도에서 그들을 executeUpdate의 수 문을 주 블록에 완전히 넣으십시오.

+0

[codereview] (http://codereview.stackexchange.com/)에서 살펴볼 수 있습니다. – RoToRa

+0

stackoverflow와 codereview의 차이점은 무엇입니까? – Trent

+0

Codereview는 모범 사례에 대한 제안을 포함하여 (작업 중) 코드를 검토 한 것입니다. – RoToRa

답변

0

나는 내 자신의 질문에 대한 답변을 마련하고 난 그냥이 커뮤니티가 무엇 때문에 사람이 혜택을 누릴 또는 추가 아무것도 가지고 있습니다 경우에 여기에 게시하고 싶은 확인 에 대한.

public class Prog { 

    // static variables --------------------------------------------------- 
    static Connection conn; 
    static ResultSet row; 

    // main --------------------------------------------------------------- 
    public static void main(String[] args) { 

     // connect to db --------------------------------------------------- 
     try { 
      DBConnect cl_conn = new DBConnect(); 
      conn = cl_conn.f_connect(); 
     } catch(Exception log) { 
      System.out.println("FAIL") 
     } 

     // prepare statements ---------------------------------------------- 
     SQLPrep prep = new SQLPrep(conn); 

     // execute statement 01 -------------------------------------------- 
     try { 
      prep.users_sel.setInt(1, 2);   // pass values to stmnt 
      row = prep.users_sel.executeQuery(); // execute stmnt 
     } catch(SQLException log) { 
      System.out.println("FAIL"); 
     } 

    } 

} 

class DBConnect { 
    ***code to connect to db*** 
} 

// all prepared stmnts in one place ---------------------------------------- 
class SQLPrep { 

    static PreparedStatement users_sel = null; // select from users 
    static PreparedStatement access_sel = null; // select from access 

    try { 

     sp_sql = "SELECT * FROM USERS WHERE u_id = ?"; 
     users_sel = conn.prepareStatement(sp_sql); 

     sp_sql = "SELECT * FROM ACCESS WHERE a_id = ?"; 
     access_sel = conn.prepareStatement(sp_sql); 

    } catch(SQLException log) { 
     System.out.println("FAIL"); 
    } 

} 

이 어떤 사람들에게 이상하게 보일 수 있지만, 나는이 구조 코드의 매우 깨끗하고 깔끔한 방법으로 찾을 수 있습니다 (가능한 한 주 중 많은 코드를 유지). 명령문이 실행되는 블록조차도 별도의 함수로 이동할 수 있으며 'prep.users_prep'만 전달하면됩니다.

1

여기에는 PrepateStatement 사용 방법에 대한 예제가 있습니다.

JDBC PreparedStatement Example – Select List Of The Records

+0

이 나를 시작하기에 좋은 장소인지 알지 못했지만, 내가 생각했던 것만은 아니지만 이것은 내가 원하는 흐름을 성취하는 방법에 대한 아이디어를 준다. – Trent