Программа:
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();
}