Как автоматически вставить дату и время в таблицу sql

Я создал имя таблицы EventLog7 в SQL Server 2008:

create table EventLog7(
    EventId int not null identity(1,1),
    EventDate datetimeconstraint DF_myDate DEFAULT (getdate()), 
    ObjectId varchar(50),
    Name varchar(50),
    Value varchar (50)
) 

В NetBeans есть три jtextполя, которые помогают вставлять данные в таблицу EventLog SQL (ObjectId, Name, Value), когда я нажимаю кнопку. Упомянутый ниже код кнопки действия:

 String objectid=jTextField1.getText();
 String value=jTextField2.getText();
 String name=jTextField3.getText();           
 try{
     DoConnect();
     st=conn.createStatement();         
     String sql = "insert into EventLog7 values('"+objectid+"','"+name+"','"+value+"')";
     pst = conn.prepareStatement(sql);
     pst.execute();
     rs=st.executeQuery("select * from EventLog7");               
     jTable1.setModel(net.proteanit.sql.DbUtils.resultSetToTableModel(rs));
 }
 catch(Exception e){
     JOptionPane.showMessageDialog(null,e);
 } 

Итак, я хочу, чтобы, когда я вставляю значения ObjectId, Name, Value в три jtextfiles, тогда таблица Sql автоматически вставляла дату и время с этими данными.

Но по моему коду выдает ошибку

Column names or number of supplied values does not match table definition

Поэтому, пожалуйста, предоставьте мне правильный путь.

Делайте НЕТ конкатенацию входных данных в такие операторы SQL. Узнайте, как правильно использовать PreparedStatement и передавать значения через ResultSet.setInt() или setString().

a_horse_with_no_name 28.02.2019 22:33
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
539
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
String sql = "insert into EventLog7 values('"+objectid+"','"+name+"','"+value+"')";

линия будет

String sql = "insert into EventLog7(ObjectId, Name, Value, EventDate) values('"+objectid+"','"+name+"','"+value+"',GETDATE())";

Я не знаю, как генерируются идентификаторы sql-server , вам также может потребоваться установить его, если это не автоматическое назначение/увеличение.

И я могу сказать, что это небезопасно, вам нужно использовать ?s вместо ваших переменных и использовать методы set для их установки, как напоминает a_horse_with_no_name. Используйте то, что я предложил, только для устранения ошибки, которая у вас есть сейчас.

я вставил ваш код, затем он показывает ошибку, неправильный синтаксис рядом с «батареей», пожалуйста, предоставьте мне полный код кнопки действия

Umair Zubairi 28.02.2019 23:11

в вашем коде нет чего-то вроде battery, отличается ли он от того, что вы просили

mcvkr 28.02.2019 23:12

И что я должен делать?

Umair Zubairi 28.02.2019 23:13

Смотрите обновленный запрос, я забыл 's, теперь они там

mcvkr 28.02.2019 23:21

Пожалуйста, поднимитесь или примите ответ, который вам поможет. Спасибо.

mcvkr 28.02.2019 23:22

Другие вопросы по теме