使用java和sql INSERT Query在MS访问中插入字符串类型变量和日期类型变量

时间:2013-01-17 10:21:24

标签: java sql

我发布了一个关于如何将字符串日期转换为要在访问数据库中添加的日期/时间字段的问题:这是链接

how to insert in a date/time ms access field using java sql INSERT query

我找到了一个我在这里使用的解决方案,这是我的代码

        if(b==c.t.addR){
        String n=Integer.toString(4);
        String t=c.t.titlefield.getText();
        String d=c.t.datefield.getText();
        String p=c.t.progressfield.getText();
        String pr=c.t.pselection;
        String s="Open";
        SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy hh:mm a");

        try {
            date = df.parse(d);
            String query = "INSERT into Records (Deadline) Values(?)";
            PreparedStatement ps  = c.b.con.prepareStatement(query);

            ps.setTimestamp(1,new java.sql.Timestamp(date.getTime()));
            ps.executeUpdate();

        }catch (Exception er) {
            // TODO Auto-generated catch block
            er.printStackTrace();
        }


        try {
            c.b.st.executeUpdate("INSERT into Records (Title,Progress,Priority,Status) VALUES('"+t+"','"+p+"','"+pr+"','"+s+"') ");
            JOptionPane.showMessageDialog(null, "Record Added");
        } catch (SQLException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }


    }

现在出现的问题是,日期被添加到单独的记录中,而其他字段如标题,进度等则被添加到另一个中! 如何在单个记录中插入日期和其他字符串字段。 Plz用一些代码行说明!!!以前的解决方案的修改将非常有用,谢谢!!

2 个答案:

答案 0 :(得分:0)

  

如何在单个记录中插入日期和其他字符串字段

使它成为一个插入语句而不是2。

   String query = "INSERT into Records (Deadline,Title,Progress,Priority,Status) Values(?,?,?,?)"
 PreparedStatement ps  = c.b.con.prepareStatement(query);

                ps.setTimestamp(1,new java.sql.Timestamp(date.getTime()));
                ps.setString(2,t);
                ps.setString(3,p);
                ps.setSring(4,pr);
                ps.setString(5,s);
                ps.executeUpdate();

答案 1 :(得分:0)

您可以通过执行一个sql语句来插入单个记录。您只需要将列添加到语句中,并使用预准备语句设置它们的值。这是执行插入而不是连接String的更安全的方法。

if(b==c.t.addR){
    String n=Integer.toString(4);
    String t=c.t.titlefield.getText();
    String d=c.t.datefield.getText();
    String p=c.t.progressfield.getText();
    String pr=c.t.pselection;
    String s="Open";
    SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy hh:mm a");

    try {
       date = df.parse(d);
       String query = "INSERT into Records (Deadline,Title,Progress,Priority,Status)" 
           + "Values(?, ?, ?, ?,?)";

       PreparedStatement ps  = c.b.con.prepareStatement(query);

       ps.setTimestamp(1,new java.sql.Timestamp(date.getTime()));
       ps.setString(2,t);
       ps.setString(3,p);
       ps.setSring(4,pr);
       ps.setString(5,s);
       ps.executeUpdate();

        }catch (Exception er) {
          // TODO Auto-generated catch block
          er.printStackTrace();
        }

}