2013-12-16 2 views
0

내 Java 프로젝트에 2 개의 파일이 있습니다 : MysqlConnect 및 Main. Main 클래스에서 쿼리를 실행하고 싶습니다. 가능합니까? 주 파일에서 데이터베이스에 데이터를 삽입하는 방법은 무엇입니까?

는 MysqlConnect 파일입니다

public class MysqlConnect { 

public Connection conn = null; 
public String url = "jdbc:mysql://localhost:3306/"; 
public String dbName = "jdbctutorial"; 
public String driver = "com.mysql.jdbc.Driver"; 
public String userName = "birthday"; 
public String password = "123456"; 
public Statement stmt; 
public String query = ""; 
public int rs; 

public void crearedatabase() { 
    try { 

     Class.forName(driver).newInstance(); 
     conn = DriverManager 
       .getConnection(url + dbName, userName, password); 
     // System.out.println("Connected to the database"); 
     Statement stmt = conn.createStatement(); 

    } catch (Exception e) { 
     System.out.println("Baza de date nu a fost creata"); 
    } 

} 

public void executeSql() { 

    try { 
     rs = stmt.executeUpdate(query); 
    } catch (Exception e) { 
     System.out.println("Mysql Error"); 
    } 

} 
} 

그리고 이것은 홈페이지 파일입니다 :

public class Main { 
public static void main(String[] args) throws SQLException 
{ 



MysqlConnect sqlconnect = new MysqlConnect(); 
sqlconnect.crearedatabase(); 

sqlconnect.query="INSERT INTO `jdbctutorial`.`persons` (`id`, `nume`, `prenume`, `data`) VALUES (NULL, 'xxxx', 'xxxx', '1990-12-12');"; 
sqlconnect.executeSql(); 
} 

} 

오류 (예외)를 시도에서 MysqConnection에/catch

rs = stmt.executeUpdate(query); 
+0

'가능 가능 ??? '오류 (Exception)가 MysqConnection의 try/catch에서 무엇이 오류입니까? 전체 게시를하시기 바랍니다. MysqlConnect.executeSql (MysqlConnect.java:33) Main.main에서 \t (Main.java:19) – Taylor

+0

이 오류의 모든'문자 치우는 시도 디버깅. 당신의'stmt' 객체는 어떤 이유로 null입니다. –

+0

시도에서 java.lang.NullPointerException이 \t : 또한, 귀하의 요청에 – Taylor

답변

1

동일 이름의 오브젝트 필드 대신 stmt이라는 로컬 변수에 명령문 오브젝트를 지정합니다. 이 사항은이

Statement stmt = conn.createStatement(); 

를 교체 :

this.stmt = conn.createStatement(); 

this 여기에 필요하지 않습니다,하지만 거기에 그것을 가지고하는 것이 좋습니다.

+0

대단히 감사합니다. –

+0

잘 찾아 냈습니다. – Taylor

관련 문제