我有一个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);
}
答案 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/