Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的Mysql语句未执行_Java_Mysql - Fatal编程技术网

java中的Mysql语句未执行

java中的Mysql语句未执行,java,mysql,Java,Mysql,我有一个Java函数,用于更新mysql数据库中表的description字段和title字段,如下所示: public void updateDescription( String desc, String title, int urlid ) throws SQLException, IOException { String cutDesc = desc.substring(0, 99); Statement stat = connection.createStatement

我有一个Java函数,用于更新mysql数据库中表的description字段和title字段,如下所示:

public void updateDescription( String desc, String title, int urlid ) throws SQLException, IOException {
    String cutDesc = desc.substring(0, 99);
    Statement stat = connection.createStatement();
    String query = "UPDATE urls SET description = '"+cutDesc+"', title = '"+title+"' WHERE urlid =" + urlid;
    stat.executeUpdate( query );
    stat.close();
}
使用以下命令调用此函数时:

updateDescription(desc, title, urlID);
桌子上什么也没有放。没有错误,只是似乎忽略了它。你知道这里怎么了吗

谢谢


应该有帮助。

你说什么都没有放进桌子里

但是
UPDATE
不会将内容放入表中-它只修改已经存在的行。您需要使用
INSERT
而不是
UPDATE

public void updateDescription( String desc, String title, int urlid ) throws SQLException, IOException {
    String cutDesc = desc.substring(0, 99);
    Statement stat = connection.createStatement();
    String query = "UPDATE urls SET description = '"+cutDesc+"', title = '"+title+"' WHERE urlid ='" + urlid+"'";
    stat.executeUpdate( query );
    stat.close();
}

请尝试上面的代码,因为您已经声明urlid是数据库中的VARCHAR

您是否打印了查询并尝试在数据库中手动执行它?只有当
where
条件没有获取任何记录时,查询才会失败。很抱歉,我不够清楚。我在其他两列中已经有了值。此时“描述和标题”字段中只有一个空值。共有四列,其中两列的值是通过以下命令插入的:
String query=“INSERT INTO url values(““+urlID+”,“+url+”,“,”)”)说明和标题是queryOK中的最后两列,列
urlID
的类型是什么?注释中的
INSERT
语句表明它是字符类型,但Java代码表明它是数字类型。你确定那些值已经进入了你认为它们已经进入的列吗?它是VARCHAR,因为我一直在将它与多个URLID连接起来,这些URLID由逗号分隔,例如2,3,4,7,8,那么你的
updateDescription
方法是否引发了
SQLException
?因为您要将它与SQL中的数值进行比较。另外,您实际要更新的行中该列的值是多少?顺便说一句,在一列中有多个值通常是个坏主意。为什么不能为每个URL ID插入一行?标题或描述列中仍然没有插入任何内容。请跳出字符串“query”,并尝试直接在数据库上运行带有URL ID值的SQL查询。检查是否有任何更改,因为您的查询似乎很好。我打印了查询,然后复制并粘贴了它的外观和工作方式!所以我想不出为什么它在函数中不起作用?
connection.setAutoCommit(true);
public void updateDescription( String desc, String title, int urlid ) throws SQLException, IOException {
    String cutDesc = desc.substring(0, 99);
    Statement stat = connection.createStatement();
    String query = "UPDATE urls SET description = '"+cutDesc+"', title = '"+title+"' WHERE urlid ='" + urlid+"'";
    stat.executeUpdate( query );
    stat.close();
}