Я использую в своем коде jdbc написал следующий код для поиска идентификатора:
public Item findById(String id) {
Item result = null;
String s = "SELECT id, key, name, creat, description FROM trackersql WHERE id = :id";
try (Connection connection = init()) {
PreparedStatement statement = connection.prepareStatement(s);
ResultSet resultSet = statement.executeQuery();
while(resultSet.next()) {
Item item = new Item();
statement.setString(1, id);
statement.setString(2, item.getKey());
statement.setString(3, item.getName());
statement.setLong(4, item.getCreat());
statement.setString(5, item.getDescription());
statement.executeUpdate();
}
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}
выполняя проверку кода следующим образом:
try {
DriverManager.registerDriver(new org.postgresql.Driver());
} catch (SQLException e) {
e.printStackTrace();
}
TrackerSQL trackerSQL = new TrackerSQL();
Item item1 = new Item("1", "1", "test1", 1, "test1");
trackerSQL.init();
System.out.println(trackerSQL.findById(item1.getId()));
, но я получаю следующую ошибку:
ОШИБКА: синтаксическая ошибка (приблизительная позиция: ":") Позиция: 69 в орг. postgresql .core.v3.QueryExecutorImpl.receiveErrorResponse (QueryExecutorImpl. java: 2103) в орг. postgresql .core.v3.QueryExecutorImpl.processResults (QueryExecutorImpl. java: 1836) в org. postgresql .core.v3.QueryExecutorImpl.execute (QueryExecutorImpl. java: 257) в org. postgresql. .AbstractJdbc2Statement.execute (AbstractJdbc2Statement. java: 512) на орг. 1025 *: 273) на ru.job4j.trackersql2.Tracker SQL .findById (Трекер SQL. java: 104) на ru.job4j.trackersql2.Tracker SQL .main (Трекер SQL. java: 188) null
в чем моя ошибка?