作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在学习OCPJP认证,实际上我在JDBC章节。我知道我可以通过两种方式更新数据库:第一种是使用 JDBC API,特别是 ResultSet 类中的 updatexxx 方法;第二个是通过 execute 方法发送一个语句,以便 DBMS 自己执行更新。所以,假设我有一个名为“contacts”的表,我想将“phoneNo”字段更新为“1234567890”,其中“name”字段等于“George”。请注意,我使用的是 MySQL。这之间有什么区别(如果有的话)
ResultSet resultset = statement.executeQuery("SELECT * FROM contacts WHERE name=\"George\"");
resultset.updateString("phoneNo", "1234567890");
updateRow();
还有这个?
statement.executeUpdate("UPDATE contacts SET phoneNo=\"1234567890\" WHERE name=\"George\"");
什么时候应该使用第一种方法,什么时候使用第二种方法?为什么我应该更喜欢其中一个而不是另一个?谢谢:D
最佳答案
这两个选项都会成功更新您的数据库。但是您的第二个选项 ExecuteUpdate
更好,原因如下:
1) 选项2中,大部分工作由数据库服务器完成,这是可取的,因为这是数据库的工作
2) 第一个选项要求从数据库服务器获取数据,在您的 Java 程序中进行操作,然后将其发送回数据库。您正在向数据库服务器发送多个请求。在第二个选项中,只有 1 个步骤。
3) 在您使用的第一个选项中 SELECT * ....
,这不是好的做法,因为您正在检索不必要的数据。您应该只检索所需的列,而不是所有列。即 SELECT PhoneNo
如果您正在编写代码以获得最佳性能,您应该使用选项 2,因为您正在执行单个请求,并且只将相关数据传递给您的数据库服务器
关于java - JDBC 如何更新一个数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26754178/
我是一名优秀的程序员,十分优秀!