JAVA: база данных результатов возвращает ноль строк - PullRequest
0 голосов
/ 17 апреля 2011

Я с помощью заглушек проверил, что драйвер загружается и соединение установлено.мой метод, который запрашивает базу данных, выполняется без ошибок, но возвращает пустой набор результатов из 5 столбцов и 0 строк (что я проверил с помощью отладки).В тестовой базе данных есть 4 записи с 5 столбцами, и мой запрос просит вернуть все результаты.Возможно, я просто устал ... есть понимание, что мне не хватает?вот метод запроса.доступ к файлу базы данных .mdb

public ArrayList fillResults () {ArrayList saveData = new ArrayList ();Заявление stmt = null;ResultSet results = null;

    try
    {
        stmt = conn.createStatement();
        results = stmt.executeQuery(SELECT_ALL);
        while(results.next())
        {
            for(short i = 0; i < 5; i++)
            {
                savedData.add(results.getString(i));
            }
        }

    }
    catch(SQLException ex)
    {
        JOptionPane.showMessageDialog(null, ex.getMessage() + ": error during retrieval.");
    }
    finally
    {           
        try
        {
            results.close();
            stmt.close();
        } catch (SQLException e){}
    }

    return savedData;
}

1 Ответ

0 голосов
/ 17 апреля 2011

Вы НЕ должны возвращать ResultSet. И у класса постоянства не должно быть Swing JOptionPane.

Попробуйте это так:

package persistence;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

public class JdbcDemo
{
    private static final String SELECT_SAVED_DATA = "select * from saveData";

    private Connection connection;

    public JdbcDemo(Connection connection)
    {
        this.connection = connection;
    }

    public List<String> getSavedData() throws SQLException
    {
        List<String> savedData = new ArrayList<String>();

        Statement stmt = null;
        ResultSet rs = null;
        try
        {
            stmt = this.connection.createStatement();
            rs = stmt.executeQuery(SELECT_SAVED_DATA);
            while (rs.next())
            {
                savedData.add(rs.getString(1)); // modify this as needed
            }
        }
        finally
        {
            DatabaseUtils.close(rs);
            DatabaseUtils.close(stmt);
        }

        return savedData;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...