Значения по умолчанию при вставке с помощью PreparedStatement

149
12 сентября 2017, 07:48

Такой вопрос, есть дао класс с запросом 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();
Answer 1

В данном случае, если задавать null, то при вставке записи будет использоваться дефолтное значение.

Integer obj = null;
PreparedStatement preparedStatement;
if (obj == null) {
    preparedStatement.setNull(1, Types.INTEGER);
} else {
    preparedStatement.setInt(1, obj);
}

Если СУБД не поддерживает эту возможность, то можно путем модифицирования запроса (составлять запрос с необходимым количеством параметров) либо добавлять хранимую процедуру.

READ ALSO
Изображение на заднем фоне

Изображение на заднем фоне

Подскажите, как сделать данный орнамент на заднем фоне при этом прижать его к правому и левому краёв? Пробовал сделать позиционированием,...

332
Как правильно отобразить datagridview в pdf c помощью iTextSharp?

Как правильно отобразить datagridview в pdf c помощью iTextSharp?

По этому мануала пытался настроить мануал iTextSharp

497
C#. Компилятор ругается, не может использовать лямбда выражение, т.к. не может определить тип аргумента. Как обойти?

C#. Компилятор ругается, не может использовать лямбда выражение, т.к. не может определить тип аргумента. Как обойти?

От одного и того же класса наследуются несколько других с дополнительными свойствамиХочу написать универсальную функцию, которая бы работала...

211
Подключение к базе данных oracle 11g

Подключение к базе данных oracle 11g

ЗдравствуйтеЕсть программа c# ASP

264