一、資料更新陳述句的命令格式如下:
UPDATE <table_name> SET column_name = 'xxx' WHERE <條件運算式>
- 在更新資料的時候既可以使用Statement實體通過UPDATE陳述句完成,也可以利用PreparedStatement實體通過執行UPDATE陳述句來完成,還可以利用CallableStatement實體通過執行存盤程序完成,
- (1)利用Statement實體通過執行靜態UPDATE陳述句舉例
String sql = "update tb_record set salary=3000 where duty='部門經理'";
statement.executeUpadate(sql);
- (2)利用PreparedStatement實體通過執行動態UPDATE陳述句
String sql = "update tb_record set salary=? where duty = ?";
PreparedStatement prpdStmt = connection.prepareStatement(sql);
prpdStmt.setInt(1,3000);
prpdStmt.setString(2,"部門經理");
prpdStmt.executeUpdate();
- (3)利用CallableStatement實體執行存盤過成修改資料的實體
String call = "{call pro_record_update_salary_by_duty(?,?);
CallaleStatement cablStmt = connection.prepareCall(call);
cablStmt.setInt(1,3000);
cablStmt.setString(2,"部門經理");
cablStmt.executeUpdate();
- 無論使用哪種實體修改資料,都需要執行executeUpdate()方法,該方法將會回傳一個int型值,用于記錄被修改的條數
package com.bjpowernode.java_learning;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class D137_1_UpdateInformation {
private static final String URL = "jbdc:Access:///e:xsgl.mdb";
static {
try {
Class.forName("com.hxtt.sql.access.AccessDriver");
}catch(ClassNotFoundException e) {
e.printStackTrace();//輸出捕捉到的例外資訊
}
}
public static void main(String[] args) {
try {
Connection conn = DriverManager.getConnection(URL);
Statement statement = conn.createStatement();
String sql = "update tb_record set Salary=Salary + 10 where Duty='部門經理' ";
statement.executeUpdate(sql);
statement.close();
conn.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
}
- 執行該陳述句之后部門里面所有的部門經理薪水都會漲100
- 接下來使用PreparedStatement來操作一遍
package com.bjpowernode.java_learning;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class D137_2_PreparedStatementUpdate {
private static final String URL = "jbdc:Access:///e:xsgl.mdb";
static {
try {
Class.forName("com.hxtt.sql.access.AccessDriver");
}catch(ClassNotFoundException e) {
e.printStackTrace();//輸出捕捉到的例外資訊
}
}
public static void main(String[] args) {
try {
Connection conn = DriverManager.getConnection(URL);
String[][] infos = {{"A","200"},{"B","100"}};
String sql = "update tb_record set salary=salary+? where cname=?";
PreparedStatement prpdStmt = conn.preparedStatement(sql);
prpdStmt.clearBatch();
for(int i=0;i<infos.length;i++) {
prpdStmt.setInt(1, Integer.valueOf(infos[i][1]).intValue());
prpdStmt.setString(2, infos[i][0]);
prpdStmt.addBatch();
}
prpdStmt.executeBatch();
prpdStmt.close();
conn.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
}
二、原始碼:
- D137_1_UpdateInformation.java
- D137_2_PreparedStatementUpdate
- https://github.com/ruigege66/Java/blob/master/D137_1_UpdateInformation.java
- https://github.com/ruigege66/Java/blob/master/D137_2_PreparedStatementUpdate
- CSDN:https://blog.csdn.net/weixin_44630050
- 博客園:https://www.cnblogs.com/ruigege0000/
- 歡迎關注微信公眾號:傅里葉變換,個人賬號,僅用于技術交流

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/24446.html
標籤:Java
下一篇:封裝的curl
