我试图将数据插入到MySQL数据库中,其中一列获取当前日期。
该代码是
unit=request.getParameter("unit");
name=request.getParameter("name");
article=request.getParameter("article");
String user=request.getParameter("username");
Class.forName("com.mysql.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/newsletter?", "root", "pooja");
Statement st = conn.createStatement();
String query="insert into browse values('"+0+"','"+name+"', '"+NOW()+"', '"+article+"', '"+unit+"', '"+user+"' );";
ResultSet rs = st.executeQuery(query);
代码在NOW()处抛出错误,表明该方法未定义。我可以在此代码本身中进行任何更正,还是可以通过其他方式将当前日期输入数据库?
提前致谢。
该now()
函数是MySQL函数,而不是Java方法调用。因此,它应该是SQL文本的一部分,而不是字符串。
添加类似"'" + something + "'"
的时候是正确的something
是Java表达式返回一个字符串。如果something
包含“ foo”,则结果为'foo'
有效的SQL字符串。
但是NOW()
不是Java表达式。它也不是SQL中的文字字符串。因此,您不需要引号。相反,您应该有类似的内容+",NOW(),"+
。
String query="insert into browse values('0','"+name+"', NOW(), '"+article+"', '"+unit+"', '"+user+"' );";
建议使用aPreparedStatement
而不是语句,并且不要以这种方式嵌入字符串。然后,NOW()
它将成为SQL语句的一部分,而字符串将仅被替换为?
。
String query="insert into browse values('0',?,NOW(),?,?,?)";
PreparedStatement stmt = conn.prepareStatement(query);
stmt.setString(1, name);
stmt.setString(2, article);
stmt.setString(3, unit);
stmt.setString(4, user);
int inserted = stmt.executeUpdate();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句