0
Netbeans을 사용하여 퀴즈 응용 프로그램을 만들려고하고 있으며 Java에 익숙하지 않습니다. 나는 그것을 MySQL에 연결하려고 시도했고 성공적이었다. 문제는 환영 화면의 정보로 클래스를 생성하고 프로그램 전체에서 데이터를 상속해야한다는 것을 깨달았을 때 도착했습니다. 그래서 저는 제 수업을 만들었습니다. BaseClass 및 ChildClass입니다. 이 후 내 jButton은 아무 것도하지 않을 것입니다. 여기에 코드가 있습니다.Java 클래스
class BaseClass
{
String jdbcurl = "jdbc:mysql://localhost:3306/quiz";
String user="root";
String pass="sql";
int num = (int)(Math.random() * 1000);
String name = jTextField1.getText();
int age=Integer.parseInt(jTextField2.getText());
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
class ChildClass extends BaseClass
{
public void input() {
try {
Class.forName("java.sql.Driver");
Connection con = (Connection) DriverManager.getConnection(jdbcurl,user,pass);
Statement st = con.createStatement();
String query = "insert into DB values ('" + name + "'," + age + ",0," + num + ");";
st.executeUpdate(query);
st.close();
con.close();
}
catch(Exception e) {
JOptionPane.showMessageDialog(null,"Error in code");
}
Question1 w2 = new Question1();
w2.setVisible(true);
} // TODO add your handling code here:
}
}
도움을 주시면 감사하겠습니다. :)
버튼 클릭에 대한 반응은 어딘가에 구현 된 액션 리스너를 의미합니다. 나는 당신의 코드에서 그것을 볼 수 없다. 질문을 명확하게하기 위해 예제를 수정하십시오. – Jagger
잘못된 드라이버를로드하고 있습니다. 실제로 드라이버를 명시 적으로로드하지는 않습니다 (실제 드라이버는 JDBC4 호환 드라이버 인 경우 ServiceLoader에 의해 이미로드되었을 수 있습니다). 그러나 그것은 다른 문제입니다. 또한 캐치 안에'e.printStackTrace()'를 추가하면 stdout에서 문제의 원인을 볼 수 있습니다. – BalusC
이 코드는 컴파일도 수행합니까? 메소드 내에서 정의한대로 클래스를 정의 할 수 없으며, 다음 메소드가 시작되기 전에 BaseClass가 닫힌 것처럼 보입니다. 이 클래스가 모두 다른 클래스 안에 있다고 가정 할 때, ChildClass를 먼저 제거해야합니다. 나는 당신이 추출한 * .java에 전체 코드를 붙여 넣어야한다고 생각한다. – aishwarya