Соединение с базой данных с JDBC с использованием Ucanaccess нет вывода - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь создать соединение между JDBC и MS Access.

Я следую инструкции по этой ссылке . Я использую IntelliJ Idea. Здесь я делюсь некоторыми снимками, чтобы описать мою проблему.

enter image description here

Это код, который я записываю, чтобы установить соединение с базой данных Database2. Но, как вы видите, нет ни ошибки, ни вывода. Теперь я делюсь структурой и содержанием таблицы.

enter image description here

2-е изображение enter image description here

Мой код:

import java.sql.*;

public class Connection_sample {
public static void main(String[] args) {
    try {
        Class.forName("net.ucanaccess.jdbc.UcanaccessDriver");
        Connection conn= DriverManager.getConnection("jdbc:ucanaccess://D://tutorial/Database2.accdb");
        Statement s = conn.createStatement();
        s.executeQuery("select * from Student");
        ResultSet rset = s.getResultSet();

        while (rset.next()) {
            System.out.println(rset.getInt(1)+""+rset.getInt(2));
        }
    } catch (SQLException | ClassNotFoundException e) {
        e.printStackTrace();
    }
}
}

Может кто-нибудь помочь мне найти ошибку?

1 Ответ

1 голос
/ 07 ноября 2019

Ваша проблема - результат использования getResultSet() вместо использования набора результатов, возвращенного executeQuery(). Вы должны использовать getResultSet() только в сочетании с execute().

Результирующий набор должен быть получен только один раз, и он уже был возвращен из executeQuery (который вы проигнорировали). Когда вы позвонили getResultSet, вы - по-видимому - получили пустой (что технически нарушает договор).

...