使用 java 和 sql INSERT Query 在 MS 访问中插入字符串类型变量和日期类型变量
Posted
技术标签:
【中文标题】使用 java 和 sql INSERT Query 在 MS 访问中插入字符串类型变量和日期类型变量【英文标题】:Insert String type variables and a date type variable in MS access using java and sql INSERT Query 【发布时间】: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();
现在出现的问题是,日期被添加到单独的记录中,而其他字段(如标题、进度等)被添加到另一个记录中!!! 如何在单个记录中插入日期和其他字符串字段。 请用几行代码来说明!!!以前解决方案的修改将非常有帮助,谢谢!!
【问题讨论】:
【参考方案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();
【讨论】:
以上是关于使用 java 和 sql INSERT Query 在 MS 访问中插入字符串类型变量和日期类型变量的主要内容,如果未能解决你的问题,请参考以下文章
使用java和SQL查询INSERT INTO将新记录插入MS访问[关闭]
使用 java 和 sql INSERT Query 在 MS 访问中插入字符串类型变量和日期类型变量
Java + SQL:INSERT INTO 不起作用[关闭]
Spring Batch 无法获取 last_insert_id();嵌套异常是 java.sql.SQLException: Lock wait timeout exceeded;