Как исправить java. sql .SQLException: столбец не найден при попытке извлечь Mysql таблицу в Java Eclipse - PullRequest
0 голосов
/ 13 февраля 2020

Программа:

private void loadData(Connection connection) 
{
    // TODO Auto-generated method stub
    List<Integer> TID=new ArrayList<>();
    List<String>ItemSet=new ArrayList<>();
    try {
        Statement statement=connection.createStatement();
        String sql="Select distinct TID from transaction";
        ResultSet SetTid=statement.executeQuery(sql);
        while(SetTid.next())
        {
            int initialTID=SetTid.getInt("TID");
            TID.add(initialTID);
        }
        for(int initialTID : TID)
        {
            String sqlitem="Select ItemSet from transaction where TID="+initialTID;
            ResultSet setItem=statement.executeQuery(sqlitem);
            while(setItem.next())
            {
                String items=setItem.getString(sqlitem);%%LINE 57
                ItemSet.add(items);

            }
            InItemSet.add(ItemSet);
            setItem.close();

        }

Первый запрос Sql возвращает правильное значение, но второй запрос sqlite показывает, что столбец не найден, имя таблицы - транзакция с двумя столбцами TID и ItemSet.

Журнал ошибок: java. sql .SQLException: столбец «Выберите отдельный набор элементов из транзакции, где TID = 184» не найден. в com. mysql .cj.jdb c .exceptions.SQLError.createSQLException (SQLError. java: 129) в com. mysql .cj.jdb c .exceptions.SQLError.createSQLException (SQLError. java: 97) в com. mysql .cj.jdb c .exceptions.SQLError.createSQLException (SQLError. java: 89) в com. mysql .cj.jdb c .exceptions. SQLError.createSQLException (SQLError. java: 63) в com. mysql .cj.jdb c .result.ResultSetImpl.findColumn (ResultSetImpl. java: 548) в com. mysql .cj.jdb c .result.ResultSetImpl.getString (ResultSetImpl. java: 852) в Apriori.loadData (Apriori. java: 57) в Apriori.main (Apriori. java: 28)

Строка 28 из Основной программы

public static void main(String[] args) 
{
    // TODO Auto-generated method stub
    Scanner scanner=new Scanner(System.in);
    Apriori apriori=new Apriori();
    System.out.print("Please select a transaction database from 1-5");
    String database=scanner.next();
    try {
        Connection connection=DatabaseConnection.getConnection(database);
        apriori.loadData(connection);   >>> LINE 28
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
...