2012-06-06 2 views
1

Java Swing 응용 프로그램을 설계하려고합니다. 저는 UI를 실제 로직과 분리하여 데이터에 액세스하고 데이터베이스에 연결하는 MVC 유형의 아키텍처를 실험하고 사용하려고합니다. 데이터베이스에 연결하는 모든 로직을 포함하는 사용자 정의 클래스를 작성한 다음 특정 폼 및 단추에 대한 조치 이벤트에서이 클래스의 메소드를 호출하기 만하면됩니다. 데이터베이스를 전환 할 수있는이 방법은 (많은 코드를 가진 많은 코드베이스를 가지고 있다면) MySQL 대신 Oracle 연결을위한 JDBC 연결 문자열을 변경하는 것입니다. 지금까지 데이터베이스에 연결하는 코드가 있지만이 클래스를 어떻게 만들 수 있는지 알아 내려고합니다.jdbc를 사용하여 모든 데이터베이스에 연결할 클래스를 생성하십시오.

try 
    { 
     Class.forName("com.mysql.jdbc.Driver"); 
     Connection con=(Connection)DriverManager.getConnection("jdbc:mysql://localhost:3306/prototypeeop","root","triala"); 
     Statement stmt=con.createStatement(); 
     ResultSet rs=stmt.executeQuery(sql); 

다음 결과 집합을 내 연결 클래스의 멤버 함수에서 반환하여 처리하고 화면에 표시합니다. 당신이 MySQL JDBC Utilities API를 시도 할 수 있습니다

private Connection con = null; 
private Statement stmt = null; 
private ResultSet rs = null; 

con = ConnectionManager.getConnection(); 
stmt = con.createStatement(); 
rs = stmt.executeQuery(sql); 
+0

[DAO] (http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html) 패턴을 사용하십시오. – kapand

+0

그 기사는 저에게 너무 복잡해 보입니다 ... 나는 위의 코드로 내 자신의 수업을 만들고 싶습니다 ... 나는 일종의 초심자이고 약간의지도가 필요합니다. – rambokayambo

답변

11

그냥 별도의 클래스를 작성하고 그 데이터베이스에 연결 점점 위임 다음과 같이

public class ConnectionManager { 
    private static String url = "jdbc:mysql://localhost:3306/prototypeeop";  
    private static String driverName = "com.mysql.jdbc.Driver"; 
    private static String username = "root"; 
    private static String password = "triala"; 
    private static Connection con; 
    private static String urlstring; 

    public static Connection getConnection() { 
     try { 
      Class.forName(driverName); 
      try { 
       con = DriverManager.getConnection(urlstring, username, password); 
      } catch (SQLException ex) { 
       // log an exception. fro example: 
       System.out.println("Failed to create the database connection."); 
      } 
     } catch (ClassNotFoundException ex) { 
      // log an exception. for example: 
      System.out.println("Driver not found."); 
     } 
     return con; 
    } 
} 

그런 다음 코드에서 연결을 얻기를 MySQL 연결.

이 API는 매우 유용한 기능을 제공하며 요구 사항을 충족합니다.

+0

친구 사귀기 ... 당신의 너무 멋진 .... 또 다른 질문은 mysql에서 데이터베이스를 postgress로 변경해야한다면 드라이버 이름과 문자열 URL을 변경하고 내 액션 이벤트 내에서 동일한 호출을 계속 사용해야한다는 것입니다. 초보자 질문 미안해 – rambokayambo

+0

또한이 클래스는 데이터 개체 액세스 계층입니까? 어떻게 그것이 modevl보기 컨트롤러에 맞을까요? – rambokayambo

+0

이 클래스를 만들고 있는데 classnotfound 예외는 해당 try 문의 본문에 던져지지 않습니다. 이것은 내 시도와 블록을 할 soemthign 있고 내가 무슨 문제인지 궁금해. 그건 .... 시도 오류에 대해 말한 ....보고되지 않은 excpetion java.lang.classnotfound excpetion 던지기 전에 잡히거나 선언해야합니다? 나는 명백한 질문에 사과하지만 나는 블록을 너무 많이 잡으려고 노력하고있다. 나는 SQLException이 java.sql 패키지에서 선언 되었기 때문에 왜 이런 종류의 에러를 선언하지 않았는지 모른다는 것을 알고있다. – rambokayambo

0

을 :

0

두 가지 방법으로 당신은 봄의 AbstractRoutingDataSource 클래스는

  1. 재정 determineCurrentLookupKey() 메소드를 만들 수 있습니다.

  2. 시스템을 기반으로 연결을 반환하는 클래스를 만들 수 있습니다.

관련 문제