В настоящее время я добавляю данные в базу данных PostgreSQL через executeUpdate
, основываясь на входных данных со стороны приложения Spring Boot. Я добавляю comment
, longitude
, latitude
, address
и username
в таблицу обзора, используя следующий код в методе java.
Я передаю информацию в метод в классе контроллера, используя эту строку:
addReviewMethod.addReview( comment, longitude, latitude, address, username);
И это передаст данные в другой класс Java и вставит их в таблицу следующим образом:
public void addReview(String comment, double longitude, double latitude, String address, String username) {
Connection c = null;
Statement stmt = null;
try {
Class.forName("org.postgresql.Driver");
c = DriverManager
.getConnection("jdbc:postgresql://localhost:5432/arearatingpgdb",
"postgres", "root");
c.setAutoCommit(false);
stmt = c.createStatement();
int rs = stmt.executeUpdate( "INSERT INTO reviews VALUES (nextval('reviews_id_seq'::regclass), '" +comment +" '," +longitude+"," +latitude+", '"+address+"', '"+username+"');" );
System.out.println("Successfully added: " + comment + longitude + latitude + address + username);
/* while ( rs.next() ) {
Review review = rs.getDouble("price");
System.out.println();
housePrices.add(price);
}*/
//rs.close();
stmt.close();
c.close();
} catch ( Exception e ) {
System.err.println( e.getClass().getName()+": "+ e.getMessage() );
System.exit(0);
}
}
Я включил отладчики печати как в класс контроллера, так и в класс, который выполняет вставку, и они выводят правильную информацию, которая показывает, что все операции будут работать правильно.
Проблема, с которой я сталкиваюсь, заключается в том, что, когда я просматриваю содержимое таблицы, т.е. select * from reviews
в pgAdmin4, единственные строки в таблице - это те, которые я жестко закодировал. Еще более странно, когда я жестко кодирую другую строку в таблице с помощью инструмента запросов столбцы идентификаторов отражают, что строки были фактически добавлены со стороны Java, но они не отображаются в таблице. Например, я жестко закодировал в 2 строки, затем я попытался запустить методы 4 раза, затем я жестко запрограммировал еще 2 строки, и база данных выглядит следующим образом.
id | val
----+-----
1 | foo
2 | bar
6 | foo
7 | bar
Я что-то здесь не так делаю?