一、Statement,PreparedStatement,CallableStatement,Batch,Transaction,ScrollResultSet,UpdateResultSet 例

本文通过具体示例介绍了 Java JDBC 的多种用法,包括 Statement、PreparedStatement、CallableStatement 的使用,以及批处理、事务处理、滚动结果集和可更新结果集的操作。
一、Statement
  1. import java.sql.*;  
  2.   
  3. public class TestJDBC {  
  4.   
  5.     public static void main(String[] args) {  
  6.         Connection oracle_conn = null;  
  7.         Statement oracle_stmt = null;  
  8.         ResultSet oracle_rs = null;  
  9.           
  10.         Connection mssql_conn = null;  
  11.         Statement mssql_stmt = null;  
  12.         ResultSet mssql_rs = null;  
  13.                   
  14.         try {  
  15.             Class.forName("oracle.jdbc.driver.OracleDriver");  
  16.             oracle_conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.215:1521:orcl""username""password");  
  17.               
  18.             oracle_stmt = oracle_conn.createStatement();  
  19.               
  20.             Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
  21.             mssql_conn = DriverManager.getConnection("jdbc:sqlserver://192.168.0.213:1433;DatabaseName=VIS""username""password");  
  22.               
  23.             mssql_stmt = mssql_conn.createStatement();  
  24.             mssql_rs = mssql_stmt.executeQuery("select * from VideoBaseInfo");  
  25.               
  26.             while(mssql_rs.next()) {  
  27.                 System.out.println("正在插入VideoId:" + mssql_rs.getInt("VideoId") + "的记录...");  
  28.                 oracle_stmt.executeUpdate("insert into VIDEO_BASEINFO values("   
  29.                         + mssql_rs.getInt("VideoId") + ",'"  
  30.                         + mssql_rs.getString("VideoName") + "','"  
  31.                         + mssql_rs.getString("VideoVersion") + "',"  
  32.                         + mssql_rs.getInt("VideoMp4Items") + ","  
  33.                         + mssql_rs.getInt("VideoRmvbItems") + ",'"  
  34.                         + mssql_rs.getString("VideoAliasName") + "','"  
  35.                         + mssql_rs.getString("VideoAge") + "'"  
  36.                         + ")");  
  37.             }  
  38.               
  39.         } catch (ClassNotFoundException e) {  
  40.             e.printStackTrace();  
  41.         } catch (SQLException e) {  
  42.             e.printStackTrace();  
  43.         } finally {  
  44.             try {  
  45.                 if(oracle_rs != null) {  
  46.                     oracle_rs.close();  
  47.                     oracle_rs = null;  
  48.                 }  
  49.                   
  50.                 if(oracle_stmt != null) {  
  51.                     oracle_stmt.close();  
  52.                     oracle_stmt = null;  
  53.                 }  
  54.                   
  55.                 if(oracle_conn != null) {  
  56.                     oracle_conn.close();  
  57.                     oracle_conn = null;  
  58.                 }  
  59.                   
  60.                 if(mssql_rs != null) {  
  61.                     mssql_rs.close();  
  62.                     mssql_rs = null;  
  63.                 }  
  64.                   
  65.                 if(mssql_stmt != null) {  
  66.                     mssql_stmt.close();  
  67.                     mssql_stmt = null;  
  68.                 }  
  69.                   
  70.                 if(mssql_conn != null) {  
  71.                     mssql_conn.close();  
  72.                     mssql_conn = null;  
  73.                 }  
  74.             } catch (SQLException e) {  
  75.                 e.printStackTrace();  
  76.             }  
  77.         }  
  78.     }  
  79.   
  80. }  

二、PreparedStatement

  1. import java.sql.*;  
  2.   
  3. public class TestPreparedStatement {  
  4.   
  5.     public static void main(String[] args) {  
  6.         Connection oracle_conn = null;  
  7.         PreparedStatement oracle_stmt = null;  
  8.         ResultSet oracle_rs = null;  
  9.           
  10.         Connection mssql_conn = null;  
  11.         Statement mssql_stmt = null;  
  12.         ResultSet mssql_rs = null;  
  13.                   
  14.         try {  
  15.             Class.forName("oracle.jdbc.driver.OracleDriver");  
  16.             oracle_conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.215:1521:orcl""username""password");  
  17.               
  18.             oracle_stmt = oracle_conn.prepareStatement("insert into Video_ItemInfo values(?, ?, ?, ?, ?, ?, ?, ?, ?)");  
  19.               
  20.             Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");  
  21.             mssql_conn = DriverManager.getConnection("jdbc:sqlserver://192.168.0.213:1433;DatabaseName=VIS""username""password");  
  22.   
  23.             mssql_stmt = mssql_conn.createStatement();  
  24.             mssql_rs = mssql_stmt.executeQuery("select * from VideoItemInfo");  
  25.               
  26.             while(mssql_rs.next()) {  
  27.                 System.out.println("正在插入ItemIndex:" + mssql_rs.getInt("ItemIndex") + "的记录...");  
  28.                 oracle_stmt.setInt(1, mssql_rs.getInt("ItemIndex"));  
  29.                 oracle_stmt.setInt(2, mssql_rs.getInt("VideoId"));  
  30.                 oracle_stmt.setString(3, mssql_rs.getString("VideoItemName"));  
  31.                 oracle_stmt.setString(4, mssql_rs.getString("VideoExtName"));  
  32.                 oracle_stmt.setDouble(5, mssql_rs.getDouble("VideoSize"));  
  33.                 oracle_stmt.setString(6, mssql_rs.getString("VideoPath"));  
  34.                 oracle_stmt.setString(7, mssql_rs.getString("VideoType"));  
  35.                 oracle_stmt.setDate(8, mssql_rs.getDate("VideoDate"));  
  36.                 oracle_stmt.setString(9, mssql_rs.getString("ApplicationWay"));  
  37.                   
  38.                 oracle_stmt.executeUpdate();  
  39.             }  
  40.             System.out.println("插入数据到Video_ItemInfo表中操作已完成!");  
  41.         } catch (ClassNotFoundException e) {  
  42.             e.printStackTrace();  
  43.         } catch (SQLException e) {  
  44.             e.printStackTrace();  
  45.         } finally {  
  46.             try {  
  47.                 if(oracle_rs != null) {  
  48.                     oracle_rs.close();  
  49.                     oracle_rs = null;  
  50.                 }  
  51.                   
  52.                 if(oracle_stmt != null) {  
  53.                     oracle_stmt.close();  
  54.                     oracle_stmt = null;  
  55.                 }  
  56.                   
  57.                 if(oracle_conn != null) {  
  58.                     oracle_conn.close();  
  59.                     oracle_conn = null;  
  60.                 }  
  61.                   
  62.                 if(mssql_rs != null) {  
  63.                     mssql_rs.close();  
  64.                     mssql_rs = null;  
  65.                 }  
  66.                   
  67.                 if(mssql_stmt != null) {  
  68.                     mssql_stmt.close();  
  69.                     mssql_stmt = null;  
  70.                 }  
  71.                   
  72.                 if(mssql_conn != null) {  
  73.                     mssql_conn.close();  
  74.                     mssql_conn = null;  
  75.                 }  
  76.             } catch (SQLException e) {  
  77.                 e.printStackTrace();  
  78.             }  
  79.         }  
  80.     }  
  81.   
  82. }  

三、CallableStatement

  1. import java.sql.*;  
  2. public class TestProc {  
  3.   
  4.     /** 
  5.      * @param args 
  6.      */  
  7.     public static void main(String[] args) throws Exception {  
  8.           
  9.         Class.forName("oracle.jdbc.driver.OracleDriver");  
  10.         Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.1:1521:SXT""scott""tiger");  
  11.         CallableStatement cstmt = conn.prepareCall("{call p(?, ?, ?, ?)}");  
  12.         cstmt.registerOutParameter(3, Types.INTEGER);  
  13.         cstmt.registerOutParameter(4, Types.INTEGER);  
  14.         cstmt.setInt(13);  
  15.         cstmt.setInt(24);  
  16.         cstmt.setInt(45);  
  17.         cstmt.execute();  
  18.         System.out.println(cstmt.getInt(3));  
  19.         System.out.println(cstmt.getInt(4));  
  20.         cstmt.close();  
  21.         conn.close();  
  22.     }  
  23.   
  24. }  

四、Batch

  1. import java.sql.*;  
  2. public class TestBatch {  
  3.   
  4.   
  5.     public static void main(String[] args) throws Exception {  
  6.         Class.forName("oracle.jdbc.driver.OracleDriver");  
  7.         Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.1:1521:SXT""scott""tiger");  
  8.         /* 
  9.         Statement stmt = conn.createStatement(); 
  10.         stmt.addBatch("insert into dept2 values (51, '500', 'haha')"); 
  11.         stmt.addBatch("insert into dept2 values (52, '500', 'haha')"); 
  12.         stmt.addBatch("insert into dept2 values (53, '500', 'haha')"); 
  13.         stmt.executeBatch(); 
  14.         stmt.close(); 
  15.         */  
  16.           
  17.         PreparedStatement ps = conn.prepareStatement("insert into dept2 values (?, ?, ?)");  
  18.         ps.setInt(161);  
  19.         ps.setString(2"haha");  
  20.         ps.setString(3"bj");  
  21.         ps.addBatch();  
  22.           
  23.         ps.setInt(162);  
  24.         ps.setString(2"haha");  
  25.         ps.setString(3"bj");  
  26.         ps.addBatch();  
  27.           
  28.         ps.setInt(163);  
  29.         ps.setString(2"haha");  
  30.         ps.setString(3"bj");  
  31.         ps.addBatch();  
  32.           
  33.         ps.executeBatch();  
  34.         ps.close();  
  35.           
  36.         conn.close();  
  37.   
  38.     }  
  39.   
  40. }  

五、Transaction

  1. import java.sql.*;  
  2. public class TestTransaction {  
  3.   
  4.   
  5.     public static void main(String[] args) {  
  6.           
  7.         Connection conn = null;  
  8.         Statement stmt = null;  
  9.           
  10.         try {  
  11.             Class.forName("oracle.jdbc.driver.OracleDriver");  
  12.             conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:SXT""scott""tiger");  
  13.               
  14.             conn.setAutoCommit(false);  
  15.             stmt = conn.createStatement();  
  16.             stmt.addBatch("insert into dept2 values (51, '500', 'haha')");  
  17.             stmt.addBatch("insert into dept2 values (52, '500', 'haha')");  
  18.             stmt.addBatch("insert into dept2 values (53, '500', 'haha')");  
  19.             stmt.executeBatch();  
  20.             conn.commit();  
  21.             conn.setAutoCommit(true);  
  22.         } catch (ClassNotFoundException e) {  
  23.             e.printStackTrace();  
  24.         } catch(SQLException e) {  
  25.               
  26.             e.printStackTrace();  
  27.               
  28.             try {  
  29.                 if(conn != null)  
  30.                 {  
  31.                     conn.rollback();  
  32.                     conn.setAutoCommit(true);  
  33.                 }  
  34.             } catch (SQLException e1) {  
  35.                 e1.printStackTrace();  
  36.             }  
  37.         }finally {  
  38.             try {  
  39.                 if(stmt != null)  
  40.                     stmt.close();  
  41.                 if(conn != null)  
  42.                     conn.close();  
  43.             } catch (SQLException e) {  
  44.                 e.printStackTrace();  
  45.             }  
  46.         }  
  47.           
  48.   
  49.     }  
  50.   
  51. }  

六、ScrollResultSet

  1. import java.sql.*;  
  2.   
  3. public class TestScroll {  
  4.     public static void main(String args[]) {  
  5.   
  6.         try {  
  7.             new oracle.jdbc.driver.OracleDriver();  
  8.             String url = "jdbc:oracle:thin:@192.168.0.1:1521:SXT";  
  9.             Connection conn = DriverManager  
  10.                     .getConnection(url, "scott""tiger");  
  11.             Statement stmt = conn.createStatement(  
  12.                     ResultSet.TYPE_SCROLL_INSENSITIVE,  
  13.                     ResultSet.CONCUR_READ_ONLY);  
  14.             ResultSet rs = stmt  
  15.                     .executeQuery("select * from emp order by sal");  
  16.             rs.next();  
  17.             System.out.println(rs.getInt(1));  
  18.             rs.last();  
  19.             System.out.println(rs.getString(1));  
  20.             System.out.println(rs.isLast());  
  21.             System.out.println(rs.isAfterLast());  
  22.             System.out.println(rs.getRow());  
  23.             rs.previous();  
  24.             System.out.println(rs.getString(1));  
  25.             rs.absolute(6);  
  26.             System.out.println(rs.getString(1));  
  27.             rs.close();  
  28.             stmt.close();  
  29.             conn.close();  
  30.         } catch (SQLException e) {  
  31.             e.printStackTrace();  
  32.         }  
  33.     }  
  34. }  

七、UpdateResultSet
  1. import java.sql.*;  
  2. public class TestUpdataRs {  
  3.     public static void main(String args[]){  
  4.       
  5.     try{  
  6.         new oracle.jdbc.driver.OracleDriver();  
  7.         String url="jdbc:oracle:thin:@192.168.0.1:1521:SXT";  
  8.         Connection conn=DriverManager.getConnection(url,"scott","tiger");  
  9.         Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);  
  10.           
  11.         ResultSet rs=stmt.executeQuery("select * from emp2");  
  12.           
  13.         rs.next();  
  14.         //更新一行数据  
  15.         rs.updateString("ename","AAAA");  
  16.         rs.updateRow();  
  17.   
  18.         //插入新行  
  19.         rs.moveToInsertRow();  
  20.         rs.updateInt(19999);  
  21.         rs.updateString("ename","AAAA");  
  22.         rs.updateInt("mgr"7839);  
  23.         rs.updateDouble("sal"99.99);  
  24.         rs.insertRow();  
  25.         //将光标移动到新建的行  
  26.         rs.moveToCurrentRow();  
  27.   
  28.         //删除行  
  29.         rs.absolute(5);  
  30.         rs.deleteRow();  
  31.   
  32.         //取消更新  
  33.         //rs.cancelRowUpdates();  
  34.   
  35.       }catch(SQLException e){  
  36.         e.printStackTrace();  
  37.       }  
  38.     }  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值