Хочу внести в таблицу новое значение, но вылетает ошибка, хотя, если зайти в саму таблицу, то значения показываются:
org.postgresql.util.PSQLException: Can't use query methods that take a query string on a PreparedStatement.
at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:95)
at M2.main(M2.java:22)
Ошибка чтения БД
Что делать в этом случае?
import java.sql.*;
public class M2 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
String url = "jdbc:postgresql://localhost:5432/postgres";
String userName = "postgres";
String password = "12345";
Class.forName("org.postgresql.Driver");
try (Connection conn = DriverManager.getConnection(url, userName, password)) {
PreparedStatement preparedStat = null;
try {
preparedStat = conn.prepareStatement("INSERT INTO books (name, price) VALUES (?, ?)");
preparedStat.setString(1, "Shindler's List");
preparedStat.setDouble(2, 32.5);
preparedStat.execute();
ResultSet rs = null;
try {
rs = preparedStat.executeQuery("SELECT * FROM books");
while (rs.next()) {
int id = rs.getInt(1);
String name = rs.getString(2);
double price = rs.getDouble(3);
System.out.println("ID = " + id + "NAME = " + name + "PRICE = " + price);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
} else {
System.err.println("Ошибка чтения БД");
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
preparedStat.close();
}
}
}
}