Конкатенация Apache Derby (JavaDB) в отношении SQL92T (строка Prepend для существующего набора данных)
Я новичок в JavbDB и мне нужно просто добавить строку в существующую ячейку базы данных следующим образом:
public boolean updateChildNodes(String filePath, String parentPath)
throws SQLException {
// Set new parent path for all child nodes
String sql = "UPDATE sc_compare SET parentPath = (? || parentPath)"
+ "WHERE parentPath = ?";
try (Connection connection = this.connect();
PreparedStatement pstmt = connection.prepareStatement(sql)) {
// set the corresponding param
int i = 1;
pstmt.setString(i++, parentPath);
pstmt.setString(i++, filePath+"%");
// update
pstmt.executeUpdate();
} catch (SQLException | ClassNotFoundException e) {
System.out.println("updateChildNodes() "+e.getMessage());
return false;
}
return true;
}
Пример вызова:
updateChildNodes("/old path/", "/new_parent");
Для существующей записи "/old_path/" я ожидаю "/new_parent/old_path/".
Я получаю TAG вместо подготовленного заполнителя в качестве строки.
Можно ли использовать подготовленные строки с конкатенацией JavaDB и что я делаю неправильно?