1 import java.sql.Connection;
2 import java.sql.DriverManager;
3 import java.sql.ResultSet;
4 import java.sql.SQLException;
5 import java.sql.Statement;
6
7
8 public class JdbcUpdate {
9
10 /**
11 * @param args
12 */
13 public static void main(String[] args) {
14 try {
15 //加载驱动
16 Class.forName("oracle.jdbc.driver.OracleDriver");
17 //获取连接
18 Connection con = DriverManager.getConnection("jdbc:oracle:thin:@192.168.16.111:1521:orcl","scott","tiger");
19 //获得句柄
20 Statement sta = con.createStatement();
21
22 //SQL查询命令
23 String sqlFind = "select * from empbak";
24 //从emp中复制一个新表为empbak
25 String sqlCreTable = "create table empbak as select * from emp";
26 //NVL (expr1, expr2):expr1为NULL,返回expr2;不为NULL,返回expr1。注意两者的类型要一
27 String sqlUpdate = "update empbak set sal = sal+200,comm = nvl(comm+100,100) where sal > (select avg(sal) from empbak )";
28 //复制表
29 int temp = sta.executeUpdate(sqlCreTable);
30
31 //初始查询
32 //发送SQL语句,如果发送的是select,使用executeQuery;如果发送的是INSERT,DELETE,UPDATE,使用executeUpdate
33 ResultSet rs1 = sta.executeQuery(sqlFind);
34 while(rs1.next()){
35 System.out.print(rs1.getInt("empno")+"\t");
36 System.out.print(rs1.getString("ename")+"\t");
37 System.out.print(rs1.getString("job")+"\t");
38 System.out.print(rs1.getInt("mgr")+"\t");
39 System.out.print(rs1.getString("hiredate")+"\t");
40 System.out.print(rs1.getFloat("sal")+"\t");
41 System.out.print(rs1.getFloat("comm")+"\t");
42 System.out.println();
43 }
44 System.out.println("********************更新以后*********************");
45 int temp1 = sta.executeUpdate(sqlUpdate);
46 ResultSet rs = sta.executeQuery(sqlFind);
47 while(rs.next()){
48 System.out.print(rs.getInt("empno")+"\t");
49 System.out.print(rs.getString("ename")+"\t");
50 System.out.print(rs.getString("job")+"\t");
51 System.out.print(rs.getInt("mgr")+"\t");
52 System.out.print(rs.getString("hiredate")+"\t");
53 System.out.print(rs.getFloat("sal")+"\t");
54 System.out.print(rs.getFloat("comm")+"\t");
55 System.out.println();
56 }
57 rs.close();
58 sta.close();
59 con.close();
60 } catch (ClassNotFoundException e) {
61 // TODO 自动生成的 catch 块
62 e.printStackTrace();
63 } catch (SQLException e) {
64 // TODO 自动生成的 catch 块
65 e.printStackTrace();
66 }
67 }
68
69 }