我无法在日期中转换String,以便我可以将其插入到mysql数据库中

时间:2014-09-12 18:04:32

标签: java mysql

我有一个String,其中包含格式为“dd / MM / yyyy”的日期值。我如何将其插入mysql数据库(我已经在我的表中使用输入类型日期创建了一个日期列)。 我试过跟随,但它失败并给出错误(找不到符号)。

SimpleDateFormat format=new SimpleDateFormat("dd/MM/yyyy");
java.sql.Date d=new java.sql.Date(format.parse(p_date).getTime());

我的整个代码如下:

public int save_paper_rec(String a_id, String title, String p_code, String     p_date, String p_time, String p_type, String s_p, String s_n,String m_p,String m_n,String p_ins)
 {
  int aid=Integer.parseInt(a_id);
  float sp=Float.parseFloat(s_p);
 float sn=Float.parseFloat(s_n);
  float mp=Float.parseFloat(m_p);
  float mn=Float.parseFloat(m_n);

  int i=0;
  SimpleDateFormat format=new SimpleDateFormat("dd/MM/yyyy");
 java.sql.Date d=new java.sql.Date(format.parse(p_date).getTime());


try
{

 Connection con=DriverManager.getConnection(url,"root","");
 Statement s=con.createStatement();
i=s.executeUpdate("insert into  paper_record(a_id,title,p_code,p_date,p_time,p_type,s_p,s_n,m_p,m_n,p_ins)  values('"+aid+"','"+title+"','"+p_code+"','"+d+"','"+p_time+"','"+p_type+"','"+sp+"','"+sn+"','"+mp+"','"+mn+"','"+p_ins+"')");
s.close();
con.close();
 }
catch(SQLException se)
 {
  System.out.println(se);
  }
  return(i);
  }

1 个答案:

答案 0 :(得分:0)

您应该使用PreparedStatement而不是Statement。

PreparedStatement stmt = con.prepareStatement( "insert into TAB(a,b) values(?,?)" );
stmt.setDate(1, aValue);
stmt.setString(2, bValue);

使用上面的代码,jdbc驱动程序将知道如何将日期发送到DB。

例如,检查这些网站:

http://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html

http://www.mkyong.com/jdbc/how-to-insert-date-value-in-preparedstatement/