Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/autosave", "root", "");
PreparedStatement pstmt;
pstmt = con.prepareStatement("SELECT * FROM `saver` WHERE 1");
pstmt = con.prepareStatement("UPDATE `saver` SET `post_id`=?,`post_title`=?,`post_description`=?,`post_status`=?, WHERE 1");
String q = ("INSERT into saver(post_id,post_title,post_description,post_status) " +
"values('" + id + "','" + title + "'," + description + ",'" + status + "')");
pstmt.executeUpdate();
out.println(" done").
这里有三个独立的SQL。
您的第一个代码(select
)永远不会运行,因为您会立即在下一行替换pstmt
中的内容。
第二个参数(update
)具有参数占位符,但您从未填写这些参数(通过pstmt.setint
、pstmt.setstring
等),因此对其调用executeupdate
应该会失败,并出现错误。
您的第三个(insert
)只是一个字符串,您从不使用它来执行任何操作(这很好,因为它使用字符串连接来填充值,这绝不是一个好主意,它使您的代码容易受到SQL注入攻击,不管是有意的还是无意的)。
结尾处还有一个语法错误,是.
而不是;
。
我不知道您使用的是什么RDBMS,但我使用过的大多数RDBMS都不允许在set
子句的最后一个项后面加上逗号,所以您可能想要删除最后一个逗号。
请注意,update
使用了反勾来引用表名和列名,但您的insert
代码没有这样做。我建议保持一致。
下面是使用代码中使用的变量执行update
的示例:
try (
PreparedStatement pstmt = con.prepareStatement(
"UPDATE `saver` " +
"SET `post_id`=?,`post_title`=?,`post_description`=?,`post_status`=? " +
"WHERE 1"
);
) {
pstmt.setInt(1, id);
pstmt.setString(2, title);
pstmt.setString(3, description);
pstmt.setString(4, status);
pstmt.executeUpdate();
out.println(" done");
}
(这是一个try-with-resources语句,使用该语句时,无论代码如何离开该块 ;-错误或成功 ;-该语句都会被释放。)
或者如果您想要执行insert
,那么它基本上是相同的,只是不同的SQL:
try (
PreparedStatement pstmt = con.prepareStatement(
"INSERT INTO `saver` (`post_id`, `post_title`, `post_description`, `post_status`) " +
"VALUES (?, ?, ?, ?)"
);
) {
pstmt.setInt(1, id);
pstmt.setString(2, title);
pstmt.setString(3, description);
pstmt.setString(4, status);
pstmt.executeUpdate();
out.println(" done");
}
我的数据库代码是这样的。 出现成功保存的消息,但在数据库中找不到该值。请告诉我为什么会这样?
我公司使用汇流维基,这里有一些文档和共享记录。但是我发现这不是很方便,例如插入一些代码块,我必须键入然后选择code block然后选择language(例如bash java等),如果使用markdown就。 有没有什么方式可以在汇合中快速插入代码?
使用指南 - 数据报告 - 百度推广 - 为什么推广报告中没有数据 如果确认代码安装正确(点此查看如何检查代码安装正确),那么百度推广报告中没有数据或者数据显示不全,可能有以下原因: 1、您的查看时间为添加代码的当天,此时百度推广数据尚未生成,要等次日查看; 2、如果是某个特定的计划、单元或关键词没有数据,请检查: (1)您是否在全部的百度推广URL中安装了代码? 请确保在全部的百度推广URL都安
这段代码是我用Java Swing制作的Tic-Tac-Toe程序的一部分。为什么在添加用于添加按钮的for语句时返回NullPointerException?
问题内容: 我知道每次键入字符串文字时,字符串池中都会引用相同的String对象。 但是,为什么String API不包含,所以我可以使用引用? 至少,这将节省编译时间,因为编译器将知道引用现有的String,而不必检查是否已创建它以进行重用,对吗?我个人认为,字符串文字(尤其是很小的文字)在许多情况下是一种“代码异味”。 那么是否没有String.Empty背后的宏伟设计原因,还是语言创建者根本
问题内容: 在Java中,有和接口。两者都属于Java的标准框架,并提供了一种访问元素的分类方法。 但是,据我了解没有。你可以用来对列表进行排序。 知道为什么要这样设计吗? 问题答案: 列表迭代器首先确保你以列表的内部顺序(也称为插入顺序)获取列表的元素。更具体地说,它是按照插入元素的顺序或操作列表的方式进行的。排序可以看作是对数据结构的一种操作,有几种方法可以对列表进行排序。 我将按照自己的见解