2013-04-30 6 views
0

생성자 메서드 인식하지 : 포함되어 이미 만든 내가 MySQL 데이터베이스에 대한 연결을 전화를 시도하고자바 - 나는 구문이 비트에 약간의 문제가 있어요

Connection con = null; 
Statement st = null; 
ResultSet rset = null; 

/** 
* Creates new form formUsers 
*/ 
public formUsers() { 
    initComponents(); 
    con = SQLInteract.SQLInteract(); 
    tableUpdate(); 
} 

을, 클래스의 생성자 메서드에서. 문법을 어떤 식 으로든 망쳐 놓고있는 것입니까, 아니면 전혀 할 수 없습니까? 아니면 그냥 사용하는 것처럼 간단합니다 :

SQLInteract Connect = new SQLInteract(); 

요청한대로;

Connection con = null; 
Statement st = null; 
ResultSet rset = null; 

public SQLInteract() { 
    try{ 
     Class.forName("com.mysql.jdbc.Driver"); 
     con = DriverManager.getConnection("jdbc:mysql://localhost:3306/chemsimdb","root",""); 
    }catch(Exception e) { 
     JOptionPane.showMessageDialog(null, e); 
    } 
} 
+1

그렇게 할 때 오류가 발생합니까? –

+4

정말 간단합니다. 생성자는 정적 메서드가 아닙니다. – digitaljoel

+0

'SQLInteract' 클래스에 대한 코드를 게시하십시오. –

답변

0

귀하는 이미 데이터베이스에 연결되었다고 말했습니까? 당신이 그것을 이런 식으로 한 가정 : 다음

SQLInteract sqlInteract = new SQLInteract(); 

을, 당신이해야 할 것은 다음과 같다 :

public formUsers() { 
    initComponents(); 
    con = sqlInteract.con; 
    tableUpdate(); 
} 

그러나 물론, 당신이 전에 만든 SQLInteract 인스턴스는 사용자가 원하는 곳 어느 사용할 수 있어야합니다 연결.

또한 클래스 '(및 생성자) 이름을 대문자로 시작해야하는 Java 명명 규칙을 사용하는 것이 좋습니다. 반면 변수', 메서드 '(생성자 이외의) 및 특성 이름은 소문자.

0

그것은 (내가 잘못 될 수도 있지만) MySQL의 연결이 이미 그 클래스에 설립되는 경우 생성자를 호출해야하는 것이 아닌 나에게 소리 : 여기 SQLInteract 구문입니다. MySQL 연결에 대한 참조를 보유하고 이미 그 연결을 요구하는 클래스의 이미 인스턴스화 된 객체를 사용해야합니다. 당신은 '나는 이미 만든'을 의미하는 경우

당신은 DB에 연결하는 코드가 생성자에 있음을 의미하고 당신은 단순히 다음 예를 새 개체를 만들어야합니다 호출 할 :

SQLInteract connect = new SQLInteract(); 

당신과 쓴 것의 작은 차이점은 연결의 소문자 C입니다. 클래스가 아니라 멤버 개체의 이름을 지정한다는 것을 기억하십시오. (단지 오타가 아니라 오타라고 가정합니다.)

2

생성자를 사용하여 새 인스턴스를 만들어야합니다.

SQLInteract connect = new SQLInteract(); 

당신은 이미 SQLInteract의 인스턴스로 표시되어 있다고 가정하고 이미 기존 인스턴스의 참조를 새 클래스에 전달해야한다고 말했을 것입니다. 추신 : 대문자로 클래스 이름을 지정하는 것이 좋습니다. 따라서 사용자는 FormUsers가되어야합니다.

public FormUsers(SQLInteract existingSqlConncetion) { 
    initComponents(); 
    //con will hold a reference to the SQLInteract instance that has previously been constructed 
    con = existingSqlConnection; 
    tableUpdate(); 
} 
관련 문제