Такой вопрос, есть дао класс с запросом insert последние три поля в базе данных postgresql имеют значение default,то есть как мне объяснили данные postgresql берет автоматически, какие есть способы сделать эти значения в Java?
Пример:
public void addSkisql(Skisql skisql) {
try {
PreparedStatement preparedStatement = connection
.prepareStatement("insert into clippersql.skisql(nzak,osd_t,osd_c,osd_r,kiz,pri,nvp,naim,nizv,\"user\",datez,user_ip) values(?,?,?,?,?,?,?,?,?,?,?,?)");
// Parameters start with 1
preparedStatement.setString(1, skisql.getNzak());
preparedStatement.setString(2, skisql.getOsd_t());
preparedStatement.setString(3, skisql.getOsd_c());
preparedStatement.setString(4, skisql.getOsd_r());
preparedStatement.setString(5, skisql.getKiz());
preparedStatement.setInt(6, skisql.getPri());
preparedStatement.setString(7, skisql.getNvp());
preparedStatement.setString(8, skisql.getNaim());
preparedStatement.setString(9, skisql.getNizv());
preparedStatement.setString(10, skisql.getUser());
Date date = Date.valueOf(skisql.getDatez().toString());
preparedStatement.setDate(11, date);
preparedStatement.setString(12, skisql.getUser_ip());
preparedStatement.executeUpdate();
Ответ
В данном случае, если задавать null, то при вставке записи будет использоваться дефолтное значение.
Integer obj = null;
PreparedStatement preparedStatement;
if (obj == null) {
preparedStatement.setNull(1, Types.INTEGER);
} else {
preparedStatement.setInt(1, obj);
}
Если СУБД не поддерживает эту возможность, то можно путем модифицирования запроса (составлять запрос с необходимым количеством параметров) либо добавлять хранимую процедуру.
Комментариев нет:
Отправить комментарий