【问题标题】:Insert String type variables and a date type variable in MS access using java and sql INSERT Query使用 java 和 sql INSERT Query 在 MS 访问中插入字符串类型变量和日期类型变量
【发布时间】:2013-01-17 10:21:24
【问题描述】:

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

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();
        }


    }

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

【问题讨论】:

    标签: java sql


    【解决方案1】:

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

    使其成为一个插入语句而不是 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();
    

    【讨论】:

    • 但是我将如何准备声明,,,请说明!!
    【解决方案2】:

    您可以通过执行一条 sql 语句来插入 int oa 单条记录。您只需将列添加到语句中并使用准备好的语句设置它们的值。这是一种更安全的插入方式,而不是连接字符串。

    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();
            }
    
    }
    

    【讨论】:

      猜你喜欢
      • 2020-01-07
      • 1970-01-01
      • 2012-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-19
      • 2017-08-04
      • 2012-12-31
      相关资源
      最近更新 更多