簡體   English   中英

如何從mysql數據庫中正確選擇數據? ResultSet錯誤

[英]How to select data from mysql database correctly ? ResultSet error

我正在做一個項目,在打印數據庫中的選定數據時遇到一些問題。 這是mysql連接:

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);

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

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

我的錯誤是在rrs = stmt.executeQuery(query); (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)的完整錯誤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)的完整錯誤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)您能幫我嗎? 提前致謝。

NullPointerException,可能是因為您尚未調用crearedatabase(),所以stmt為null。

做到這一點。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM