如何自动将日期和时间插入sql表

时间:2019-02-28 21:24:02

标签: java sql sql-server time

我已经在SQL Server 2008中创建了一个表名EventLog7

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中,当我按下按钮时,三个jtextfields有助于将数据插入到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);
 } 

所以,我希望当我在三个jtextfiles中插入ObjectId,Name,Value的值时,Sql表将使用这些数据自动插入日期和时间。

但是根据我的代码,它显示了错误

  

列名或提供的值数与表定义不符

所以请给我正确的方法。

1 个答案:

答案 0 :(得分:0)

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是如何生成ID的,如果不是自动分配/递增的话,您可能还需要设置它。

我可以说这是不安全的,您需要使用?而不是变量,并使用set方法将它们设置为a_horse_with_no_name提醒。请使用我仅建议的内容减轻您现在遇到的错误。