Как отобразить строку из базы данных? - PullRequest
0 голосов
/ 17 октября 2019

Я перепробовал каждый найденный здесь способ, как просто отобразить строку моей базы данных, и ничего не происходит. Пробовал использовать 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
);
*/

1 Ответ

1 голос
/ 17 октября 2019

Вы назначаете ваше Соединение на нуль. Вот почему вы получаете исключение NullPointerException: Connection conn = null;

Вам необходимо назначить соединение, используя conn = DriverManager.getConnection(url);

Вам необходимо правильно установить соединение с вашей базой данных.

...