中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

JDBC基本操作示例代碼

2018-07-20    來(lái)源:open-open

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用
package test.jdbc;

import java.sql.*;

public class JDBCTest {

    private static Connection conn = null;
    static{
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.1:1521:SXT", "scott", "tiger");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    //最基本的操作讀取
    public void testStmt(){
          ResultSet rs = null;  
          Statement stmt = null;  
          try {
             stmt = conn.createStatement();  
             rs = stmt.executeQuery("select * from dept");  
             while(rs.next()) {  
                  System.out.println(rs.getString("deptno"));  
                  System.out.println(rs.getInt("deptno"));  
             }  
             rs.close();  
             stmt.close();  
             conn.close(); 
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }  
    }
    //PreparedStatement讀取 
    public void testPrepStmt(){
        PreparedStatement pstmt = null;  
        try {
            pstmt = conn.prepareStatement("insert into dept2 values (?, ?, ?)");  
            pstmt.setInt(1, 33);  
            pstmt.setString(2, "name");  
            pstmt.setString(3, "loc");  
            pstmt.executeUpdate();  
            pstmt.close();  
            conn.close();  
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }  
    }
    //調(diào)用存儲(chǔ)過(guò)程 
    public void testProc(){
        CallableStatement cstmt;
        try {
            cstmt = conn.prepareCall("{call p(?, ?, ?, ?)}");
            cstmt.registerOutParameter(3, Types.INTEGER);  
            cstmt.registerOutParameter(4, Types.INTEGER);  
            cstmt.setInt(1, 3);  
            cstmt.setInt(2, 4);  
            cstmt.setInt(4, 5);  
            cstmt.execute();  
            System.out.println(cstmt.getInt(3));  
            System.out.println(cstmt.getInt(4));  
            cstmt.close();  
            conn.close();  
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }  
    }
    //執(zhí)行批處理
    public void testBatch(){
         /* 
        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.         */  

         try {
            PreparedStatement ps = conn.prepareStatement("insert into dept2 values (?, ?, ?)"); 
            ps.setInt(1, 61);
             ps.setString(2, "haha");  
             ps.setString(3, "bj");  
             ps.addBatch();  

             ps.setInt(1, 62);  
             ps.setString(2, "haha");  
             ps.setString(3, "bj");  
             ps.addBatch();  

             ps.setInt(1, 63);  
             ps.setString(2, "haha");  
             ps.setString(3, "bj");  
             ps.addBatch();  

             ps.executeBatch();  
             ps.close();  

             conn.close();  
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }  
    }

    //將整批分批執(zhí)行批處理
    //這才是理想的解決方案,它避免了SQL注入和內(nèi)存不足的問(wèn)題?纯次覀?nèi)绾芜f增計(jì)數(shù)器計(jì)數(shù),一旦BATCHSIZE 達(dá)到 1000,我們調(diào)用executeBatch
    public void testBatchs(){
        String sql = "insert into employee (name, city, phone) values (?, ?, ?)";
        PreparedStatement ps = conn.prepareStatement(sql);
        final int batchSize = 1000;
        int count = 0;
        for (Employee employee: employees) {
            ps.setString(1, employee.getName());
            ps.setString(2, employee.getCity());
            ps.setString(3, employee.getPhone());
            ps.addBatch();
            if(++count % batchSize == 0) {
                ps.executeBatch();
            }
        }
        ps.executeBatch(); // insert remaining records
        ps.close();
        conn.close();

    }
    //執(zhí)行事務(wù)
    public void testTransaction(){ 
         Statement stmt = null;
         try {
            conn.setAutoCommit(false);
            stmt = conn.createStatement();  
            stmt.addBatch("insert into dept2 values (51, '500', 'haha')");  
            stmt.addBatch("insert into dept2 values (52, '500', 'haha')");  
            stmt.addBatch("insert into dept2 values (53, '500', 'haha')");  
            stmt.executeBatch();  
            conn.commit();  
        } catch (SQLException e) {
            try {
                conn.rollback();
                conn.setAutoCommit(true); 
            } catch (SQLException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }  
            e.printStackTrace();
        }finally{
            try {  
               if(stmt != null)  
                   stmt.close();  
               if(conn != null)  
                   conn.close();  
             } catch (SQLException e) {  
                 e.printStackTrace();  
             }  
        }
    }

}

標(biāo)簽:

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:Android書籍翻頁(yè)效果

下一篇:Java的身份證號(hào)碼工具類