您可以使用UPDATE查询来更新/修改表中记录的现有内容。使用此功能,您可以更新表的所有记录或特定记录。
语法UPDATEtable_name
SETcolumn1=value1,column2=value2....,columnN=valueN
WHERE[condition];
要使用JDBC API更新表中记录的内容,您需要-
注册驱动程序:使用DriverManager类的registerDriver()方法注册驱动程序类。将驱动程序类名称作为参数传递给它。
建立连接:使用DriverManager类的getConnection()方法连接到数据库。将URL(字符串),用户名(字符串),密码(字符串)作为参数传递给它。
创建语句:使用Connection接口的createStatement()方法创建一个Statement对象。
执行查询:使用executeUpdate()Statement接口的方法执行查询。
让我们使用CREATE语句在Oracle数据库中创建一个带有名称调度的表,如下所示-CREATETABLEDispatches(
PRODUCTNAMEVARCHAR2(20),
CUSTOMERNAMEVARCHAR2(20),
DISPATCHDATEDATE,
DELIVERYTIMETIMESTAMP(6),
PRICENUMBER(38),
LOCATIONVARCHAR2(20)
);
现在,我们将使用INSERT语句在分派表中插入5条记录-insertintodispatchesvalues('Key-Board','Raja',TO_DATE('-09-01','yyyy/mm/dd'),TO_DATE('11:00:00','hh:mi:ss'),7000,'India');
insertintodispatchesvalues('Earphones','Roja',TO_DATE('-05-01','yyyy/mm/dd'),TO_DATE('11:00:00','hh:mi:ss'),2000,'Vishakhapatnam');
insertintodispatchesvalues('Mouse','Puja',TO_DATE('-03-01','yyyy/mm/dd'),TO_DATE('10:59:59','hh:mi:ss'),3000,'Vijayawada');
insertintodispatchesvalues('Mobile','Vanaja',TO_DATE('-03-01','yyyy/mm/dd'),TO_DATE('10:10:52','hh:mi:ss'),9000,'Chennai');
insertintodispatchesvalues('Headset','Jalaja',TO_DATE('-04-06','yyyy/mm/dd'),TO_DATE('11:08:59','hh:mi:ss'),6000,'Goa');
接下来的JDBC程序建立与Oracle数据库的连接,并将每个产品的价格提高3000。
示例importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
publicclassUpdateRecordsExample{
publicstaticvoidmain(Stringargs[])throwsSQLException{
//注册驱动程序
DriverManager.registerDriver(neworacle.jdbc.driver.OracleDriver());
//获得连接
StringoracleUrl="jdbc:oracle:thin:@localhost:1521/xe";
Connectioncon=DriverManager.getConnection(oracleUrl,"system","password");
System.out.println("Connectionestablished......");
//创建语句
Statementstmt=con.createStatement();
//查询更新记录,将所有项目的价格提高3000-
Stringquery="UpdatedispatchessetPRICE=PRICE+3000";
//执行查询
inti=stmt.executeUpdate(query);
System.out.println("Rowsupdated:"+i);
System.out.println("Contentsofthedispatchestableafterupdatingtherecords:");
//检索数据
ResultSetrs=stmt.executeQuery("Select*fromdispatches");
while(rs.next()){
System.out.print("Name:"+rs.getString("ProductName")+",");
System.out.print("CustomerName:"+rs.getString("CustomerName")+",");
System.out.print("DispatchDate:"+rs.getDate("DispatchDate")+",");
System.out.print("DeliveryTime:"+rs.getTime("DeliveryTime")+",");
System.out.print("Price:"+rs.getInt("Price")+",");
System.out.print("Location:"+rs.getString("Location"));
System.out.println();
}
}
}
输出结果Connectionestablished......
Rowsupdated:5
Contentsofthedispatchestableafterupdatingtherecords:
Name:Key-Board,CustomerName:Raja,DispatchDate:-09-01,DeliveryTime:11:00:00,Price:10001,Location:Hyderabad
Name:Earphones,CustomerName:Roja,DispatchDate:-05-01,DeliveryTime:11:00:00,Price:5000,Location:Vishakhapatnam
Name:Mouse,CustomerName:Puja,DispatchDate:-03-01,DeliveryTime:10:59:59,Price:6000,Location:Vijayawada
Name:Mobile,CustomerName:Vanaja,DispatchDate:-03-01,DeliveryTime:10:10:52,Price:12001,Location:Chennai
Name:Headset,CustomerName:Jalaja,DispatchDate:-04-06,DeliveryTime:11:08:59,Price:9000,Location:Goa