2012-10-01 2 views
0

저는 현재 실행중인 간단한 웹 서비스 (이미 완료되었습니다)가 있습니다. 저는 웹 서비스에 익숙하지 않으므로 어떤 접근 방식을 먼저 코딩했는지 코딩했습니다. 이것은 내가 DB에 연결 내가 함께 할 수있는 뭔가가 모든 시간을 어떻게웹 서비스에서 데이터베이스 연결 구현?

public class DBConfig { 

    /* Database Configuration Variables =====================================*/ 
    private static final String HOST_NAME = "127.0.0.1"; 
    private static final String PORT = "3306"; 
    private static final String DB_NAME = "myDB"; 
    private static final String DB_USERNAME = "root"; 
    private static final String DB_PASSWORD = ""; 

    /** 
    * Opens a connection based on the database details set internally 
    * and returns the active connection. 
    * 
    * @return the active connection with the database 
    */ 
    public static Connection openConnection() { 
     Connection connection = null; 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      connection = (Connection) DriverManager.getConnection(
        "jdbc:mysql://" + 
        DBConfig.HOST_NAME + ":" + 
        DBConfig.PORT + "/" + 
        DBConfig.DB_NAME, 
        DBConfig.DB_USERNAME, 
        DBConfig.DB_PASSWORD); 
     } 
     catch (Exception e) { 
      e.printStackTrace(); 
     } 

     return connection; 
    } 
} 

:

현재, 내가 좋아하는 뭔가를 보이는 DBConfig 클래스가 있습니다. 이 연결은 이와 같은 호출 메소드에 의해 닫힙니다.

public class addSomething(){ 
    ... 
    Connection con = DBConfig.getConnection(); 
    ... 
    ... 
    con.close(); 
} 

참고 : 이것은 REST 웹 서비스

질문입니다 :이 그냥 OK인가? (나는이 단지 충분, 오히려 거기에 더 나은 구현을 많이 알고 있지만?)

또 다른 질문 : 수출 내 웹 서비스, 이제 something.war (1 개 파일), 내가 어떻게 연결 속성을 변경할 수있는 경우 ? 소스 코드를 변경 한 다음 재 엑스포트해야합니까? 이 작업을 수행하는 더 좋은 방법이 있습니까? 제발 제안 해주세요. 고맙습니다.

+0

코드를 어디에서 실행하고 있습니까? Tomcat 또는 일부 java-ee 서버에서? (나는 그 태그를 알아 차렸다.) 예를 들어 Jboss에서 실행중인 경우 데이터베이스와 연결하기위한 잘 정의 된 접근 방식이 있습니다. – bjedrzejewski

답변

1

질문 : 괜찮습니까? (나는 더 나은 구현이 많이 있지만, 이것으로 충분할 것입니다.)

- 이것은 정상입니다. 연결 풀을 사용하는 것이 좋습니다.

  • Apache DBCP

    -이 사람은 Tomcat에서 내부적으로 사용하고, 진정으로 당신입니다.
  • c3p0

수출 내 웹 서비스, 이제 something.war (1 개 파일), 어떻게 연결 속성을 변경 할 수 있다면?

- 데이터베이스 속성을 외부 파일로 유지하고 응용 프로그램에서 읽어야합니다. 따라서 코드를 변경하지 않고 속성을 변경할 수 있습니다.

+0

정말 모르겠다. 그래서 내가하고있는 일은 연결 풀을 사용하고 있지 않은가? 이게 옳은 거니? - 웹 서비스를 war 파일로 내보내는 경우 등록 정보 파일이 war 파일에서도 압축됩니까? 내가 알아 낸 것은 war 파일을 가지고 있고 db 파일을 변경하기 위해 값을 변경할 수있는 별도의 파일 (war 파일 외부)이 있습니다. – Incognito

+0

예, 연결 풀을 사용해야합니다. 그리고 속성과 관련하여 spring을 사용하는 경우 propertyPlaceHolderConfuger를 사용하십시오. 그렇지 않으면 war 파일 내부 또는 외부의 속성 파일에서도 마찬가지입니다. – Anshu

관련 문제