2013-12-17 3 views
0

저는 프로젝트에서 일하고 있는데 데이터베이스에서 선택한 데이터를 인쇄 할 때 몇 가지 문제가 있습니다. 이 MySQL의 연결입니다 :mysql 데이터베이스에서 데이터를 올바르게 선택하는 방법은 무엇입니까? ResultSet error

import java.sql.*; 

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 = null; 
    public String query = ""; 
    public int rs = 0; 
    public PreparedStatement pstmt = null; 
    public ResultSet rrs = null; 

    public void crearedatabase() { 
     try { 
      Class.forName(driver).newInstance(); 
      conn = DriverManager.getConnection(url + dbName, userName, password); 
      // System.out.println("Connected to the database"); 
      stmt = conn.createStatement(); 
     } catch (Exception e) { 
      System.out.println("Baza de date nu a fost creata"); 
     } 

    } 

    public void executareSql() { 
     try { 
      rs = stmt.executeUpdate(query); 
     } catch (Exception e) { 
      System.out.println("Eroare sql"); 
     } 
    } 

    public void executaresSqlPrepareSt(String nume, String prenume, int ziua, int luna, int an) { 
     try { 
      pstmt = conn.prepareStatement("INSERT INTO persoane(Nume,Prenume,Ziua,Luna,An)VALUES(?,?,?,?,?);"); 

      pstmt.setString(1, nume); 
      pstmt.setString(2, prenume); 
      pstmt.setInt(3, ziua); 
      pstmt.setInt(4, luna); 
      pstmt.setInt(5, an); 
      pstmt.execute(); 

     } catch (SQLException e) { 
      System.out.println("Eroare prepareSql."); 
     } 
    } 

    public void selectsql() { 
     try { 
      rrs = stmt.executeQuery(query); 
     } catch (SQLException e) { 
      System.out.println("Error"); 
     } 
    } 

    public void returnareRezultat() throws SQLException { 
     while (rrs.next()) { 
      String nume = rrs.getString("FirstName"); 
      String prenume = rrs.getString("LastName"); 
      int ziua = rrs.getInt("Day"); 
      int luna = rrs.getInt("Month"); 
      int an = rrs.getInt("Year"); 

      // print the results 
      System.out.format("%s, %s, %s, %s, %s\n", nume, prenume, ziua, luna, an); 
     } 
    } 
} 

이것은 내 GUI에서 메소드를 호출하는 부분입니다 :

........................  

INT zi_actuala = data_azi.get (Calendar.DAY_OF_MONTH); int luna_actuala = data_azi.get (Calendar.MONTH);

내 오류가 rrs = stmt.executeQuery(query);

mysql.query = "SELECT Nume ,Prenume,Ziua,Luna,An FROM persoane WHERE (Ziua="+zi_actuala+" AND Luna="+luna_actuala+"); "; 
    mysql.selectsql(); 

................. (java.lang.NullPointerException이는)

이 전체 오류 at MysqlConnect.selectsql(MysqlConnect.java:63) at GuiApp.<init>(GuiApp.java:120) at GuiApp$1.run(GuiApp.java:55) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$200(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.awt.EventQueue$3.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) 입니다 도와 주시겠습니까? 미리 감사드립니다.

+0

mysql.query = "persoane FROM 누메, Prenume, Ziua, 루나,를 선택 WHERE (Ziua ="+ zi_actuala + "AND 루나 ="+ luna_actuala + ")"; –

답변

0

당신이 crearedatabase()를 호출하지 않았기 때문에 NullPointerException이 발생했을 수 있습니다. 따라서 stmt는 null입니다.

+0

crearedatabase 메서드를 호출합니다. –

0

이렇게하면됩니다.

mysql.query = "SELECT Nume ,Prenume,Ziua,Luna,An FROM persoane WHERE (Ziua="+zi_actuala+" AND Luna="+luna_actuala+"); "; 
    mysql.crearedatabase(); 
    mysql.selectsql(); 
+0

덕분에 작동합니다 ... 함수를 호출했지만 다른 함수를 호출했습니다 ... 실수 ... 시간 내 주셔서 대단히 감사합니다! –

+0

코드가 문제를 해결하는 이유를 설명하십시오. – rgettman

관련 문제