簡體   English   中英

如何顯示數據庫中的一行?

[英]How to display a row from a database?

我已經嘗試了在這里找到的關於如何簡單地顯示數據庫行的所有方法,但沒有任何反應。 嘗試使用 java.sql.Statement 但由於某種原因,它在我需要的唯一 setString 上給了我一個錯誤; 嘗試更改語句庫,但沒有任何反應。 我嘗試的最后一件事是我在代碼上的內容,但它甚至沒有給我一個錯誤,它只是彈出一個空的 JOptionPane。 關於什么可能是錯的任何想法?

JButton btnDisplayInfo = new JButton("Display Info");
        btnDisplayInfo.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                String petname = txtName.getText();

                Connection conn = null;
                //Statement pstmt = null;

                try {
                    String sql = "SELECT PETPHOTO, PETTYPE, COLOR, GENDER, ISSTERILIZED, PEDIGREE, DATE_ENTRY, VACCINE1, VACCINE2, VACCINE3 FROM PETS WHERE PETNAME=?";
                    PreparedStatement pr = conn.prepareStatement(sql); //Error appears to be here
                    pr.setString(1, petname);
                    ResultSet rs = pr.executeQuery();
                    while(rs.next()) {
                        String photo = rs.getString("PETPHOTO");
                        String type = rs.getString("PETTYPE");
                        String color = rs.getString("COLOR");
                        int gender = rs.getInt("GENDER");
                        int isSte = rs.getInt("ISSTERILIZED");
                        String pedigree = rs.getString("PEDIGREE");
                        String date_entry = rs.getString("DATE_ENTRY");
                        String vac1 = rs.getString("VACCINE1");
                        String vac2 = rs.getString("VACCINE2");
                        String vac3 = rs.getString("VACCINE3");

                        System.out.println(photo + type + color + gender + isSte + pedigree + date_entry + vac1 + vac2 + vac3);
                    }
                }catch(Exception ex) {
                    ex.printStackTrace();
                    JOptionPane.showMessageDialog(null, ex);
                }
            }
        });
        btnDisplayInfo.setBounds(42, 127, 340, 48);
        contentPane.add(btnDisplayInfo);


/**
DATABASE:
CREATE DATABASE refugio;

USE refugio;

CREATE TABLE Pets
(
   petName VARCHAR(15) PRIMARY KEY NOT NULL,
   petPhoto VARCHAR(50) NULL,
   petType VARCHAR(10) NOT NULL,
   color VARCHAR(15),
   gender TINYINT(1) NOT NULL COMMENT '0 - female, 1 - male',
   isSterilized TINYINT(1) COMMENT '0 - NO, 1 - YES',
   pedigree VARCHAR(15),
   date_entry timestamp NOT NULL,
   vaccine1 VARCHAR(15) NULL,
   vaccine2 VARCHAR(15) NULL,
   vaccine3 VARCHAR(15) NULL
);
*/

您將連接分配給 null。 這就是為什么你得到一個 NullPointerException: Connection conn = null;

您需要使用conn = DriverManager.getConnection(url);分配連接

您需要正確設置與數據庫的連接。

暫無
暫無

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

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