<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    性格決定命運,氣度影響格局
    posts - 20, comments - 18, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    JDBC簡單舉例

    Posted on 2007-08-04 16:10 尚愛軍 閱讀(314) 評論(2)  編輯  收藏

    例子1:
    ****************************************************************
    說明:僅僅實現(xiàn)了數(shù)據(jù)庫的連接,測試了一條查詢語句                              *
    ****************************************************************
    import java.sql.*;

    public class TestJDBC {


     public static void main(String[] args) {
      ResultSet rs = null;
      Statement stmt = null;
      Connection conn = null;
        
      String driver = "oracle.jdbc.driver.OracleDriver";   
      String url = "jdbc:oracle:thin:@ROBUST:1521:ORACLE9";  
      String userName = "scott";
      String userPassword = "tiger";
     
      try {
       Class.forName(driver);//加載驅(qū)動程序。
       conn = DriverManager.getConnection(url, userName, userPassword);//獲得連接。
       stmt = conn.createStatement();                                                                  //獲得statement
       rs = stmt.executeQuery("select * from dept");
       while(rs.next()) {
        System.out.println(rs.getString("deptno"));
        System.out.println(rs.getInt("deptno"));
        System.out.println(rs.getString("dname"));
       }
      } catch (ClassNotFoundException e) {
       e.printStackTrace();
      } catch (SQLException e) {
       e.printStackTrace();
      } finally {
       try {
        if (rs != null) {
         rs.close();
         rs = null;
        }
        
        if (stmt != null) {
         stmt.close();
         stmt = null;
        }
        if (conn != null) {
         conn.close();
         conn = null;
        }

       } catch (SQLException e) {
        e.printStackTrace();
       }

      }

     }

    }

    ***************************************************************
    說明:測試了一條插入語句                                                                            *
    ***************************************************************
    例子2:
    import java.sql.*;
    public class TestDML {

     
     public static void main(String[] args) {
     String driver = "oracle.jdbc.driver.OracleDriver"; 
     String url = "jdbc:oracle:thin:@robust:1521:oracle9";
     String userName = "scott";
     String userPassword = "tiger";
     String sql = "insert into dept values(50,'Shang','Harbin')";
     
     Connection conn = null;
     Statement stmt = null;
     
     try {
      Class.forName(driver);
      conn = DriverManager.getConnection(url, userName, userPassword);
      stmt = conn.createStatement();
      stmt.executeUpdate(sql);
      
     } catch (ClassNotFoundException e) {
      e.printStackTrace();
     } catch (SQLException e) {
      e.printStackTrace();  
     } finally {
      try {

       if(stmt != null) {
        stmt.close();
        stmt = null;
       }
        
       if(conn != null) {
        conn.close();
        conn = null;
       }
      } catch (SQLException e) {
       e.printStackTrace();
      }

     }
     

     }

    }
    舉例3
    ********************************************************************
    說明:通過命令行輸入實現(xiàn)數(shù)據(jù)庫的插入,注意sql語句的寫法                         *
    ********************************************************************                  
    import java.sql.*;

    public class TestDML2 {


     public static void main(String[] args) {
      String driver = "oracle.jdbc.driver.OracleDriver";
      String url = "jdbc:oracle:thin:@robust:1521:oracle9";
      String userName = "scott";
      String userPassword = "tiger";
      int deptno = 0;
      String dname = args[1];
      String loc = args[2];
        
      if(args.length != 3) {
       System.out.println("參數(shù)個數(shù)輸入錯誤,請重新運行程序!");
       System.exit(-1);
      }
      try{
       deptno = Integer.parseInt(args[0]);
      } catch (NumberFormatException e) {
       System.out.println("參數(shù)輸入錯誤,請輸入數(shù)字!");
       System.exit(-1);
      }
      String sql = "insert into dept values (" + deptno + ",'" + dname + "','" + loc + "')";
      
      
    //System.out.println(sql);  
      
      Connection conn = null;
      Statement stmt = null;
      try{
       Class.forName(driver);
       conn = DriverManager.getConnection(url, userName, userPassword);
       stmt = conn.createStatement();
       stmt.executeUpdate(sql);
      }catch (ClassNotFoundException e) {
       e.printStackTrace();
      }catch (SQLException e) {
       e.printStackTrace();
      }finally {
       try {
        if(stmt != null) {
         stmt.close();
         stmt = null;
        }
        if(conn != null) {
         conn.close();
         conn = null;
        }
       } catch (SQLException e) {
        e.printStackTrace();
       }
       

       
      }
     }

    }

    例子4:
    ********************************************************************
    說明:通過命令行輸入實現(xiàn)數(shù)據(jù)庫的插入,改用了PreparedStatement           *
    ********************************************************************  
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.sql.PreparedStatement;

    public class TestPreparedStmt {


     public static void main(String[] args) {
      String driver = "oracle.jdbc.driver.OracleDriver";
      String url = "jdbc:oracle:thin:@robust:1521:oracle9";
      String userName = "scott";
      String userPassword = "tiger";
      int deptno = 0;
      String dname = args[1];
      String loc = args[2];
        
      if(args.length != 3) {
       System.out.println("參數(shù)個數(shù)輸入錯誤,請重新運行程序!");
       System.exit(-1);
      }
      try{
       deptno = Integer.parseInt(args[0]);
      } catch (NumberFormatException e) {
       System.out.println("參數(shù)輸入錯誤,請輸入數(shù)字!");
       System.exit(-1);
      }
      
      
      
    //System.out.println(sql);  
      
      Connection conn = null;
      PreparedStatement pstmt = null;
      try{
       Class.forName(driver);
       conn = DriverManager.getConnection(url, userName, userPassword);
       pstmt = conn.prepareStatement("insert into dept values (?,?,?)");
       pstmt.setInt(1, deptno);
       pstmt.setString(2, dname);
       pstmt.setString(3, loc);               //1 2 3 表示第1 2 3 個位置。
       pstmt.executeUpdate();

      }catch (ClassNotFoundException e) {
       e.printStackTrace();
      }catch (SQLException e) {
       e.printStackTrace();
      }finally {
       try {
        if(pstmt != null) {
         pstmt.close();
         pstmt = null;
        }
        if(conn != null) {
         conn.close();
         conn = null;
        }
       } catch (SQLException e) {
        e.printStackTrace();
       }
       

       
      }
     }

    }

    例子5:
    ****************************************************************
    說明:java如何調(diào)用存儲過程的舉例。                                                           *
    ****************************************************************
    ***************************************************************************  
       create or replace procedure p                                                                                             *
              ( v_a int number , v_b number ,v_ret out number, v_temp int out number )   *
          is                                                                                                                                           *

         begin                                                                                                                                     *
                if (v_a > v_b) then                                                                                                      *
                    v_ret :=v_a;                                                                                                             *
                else                                                                                                                                 *
                   v_ret := v_b;                                                                                                             *
                end if;                                                                                                                             *
                v_temp := v_temp + 1;                                                                                              *
          end;                                                                                                                                   *
    ***************************************************************************
    sql語句如上。

    import java.sql.*;
    public class TestProc {

     /**
      * @param args
      */
     public static void main(String[] args) throws Exception {
      
      Class.forName("oracle.jdbc.driver.OracleDriver");
      Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.1:1521:SXT", "scott", "tiger");
      CallableStatement 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();
     }

    }

    例子6:
    ****************************************************************
    說明:批處理舉例                                                                                              *
    ****************************************************************
    import java.sql.*;
    public class TestBatch {


     public static void main(String[] args) throws Exception {
      Class.forName("oracle.jdbc.driver.OracleDriver");
      Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.1:1521:SXT", "scott", "tiger");
      /*
      Statement 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();
      stmt.close();
      */
      
      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();

     }

    }

    例子7:
    ****************************************************************
    說明:提交的例子                                                                                             *
    ****************************************************************
    import java.sql.*;
    public class TestTransaction {


     public static void main(String[] args) {
      
      Connection conn = null;
      Statement stmt = null;
      
      try {
       Class.forName("oracle.jdbc.driver.OracleDriver");
       conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:SXT", "scott", "tiger");
       
       conn.setAutoCommit(false);   //將自動提交設置為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();                       //自動提交為false,所以只能手動提交了。
       conn.setAutoCommit(true); 
      } catch (ClassNotFoundException e) {
       e.printStackTrace();
      } catch(SQLException e) {
       
       e.printStackTrace();
       
       try {
        if(conn != null)
        {
         conn.rollback();
         conn.setAutoCommit(true);   //因為這里面是SQLException,說明sql語句出錯了,必須回滾。
        }
       } catch (SQLException e1) {
        e1.printStackTrace();
       }
      }finally {
       try {
        if(stmt != null)
         stmt.close();
        if(conn != null)
         conn.close();
       } catch (SQLException e) {
        e.printStackTrace();
       }
      }
      

     }

    }
    例子8:
    ************************************************************************
    JDBC處理可滾動的結(jié)果集                                                                                                *
    ************************************************************************
    import java.sql.*;

    public class TestScroll {
     public static void main(String args[]) {

      try {
       new oracle.jdbc.driver.OracleDriver();
       String url = "jdbc:oracle:thin:@192.168.0.1:1521:SXT";
       Connection conn = DriverManager
         .getConnection(url, "scott", "tiger");
       Statement stmt = conn.createStatement(
         ResultSet.TYPE_SCROLL_INSENSITIVE,
         ResultSet.CONCUR_READ_ONLY);
       ResultSet rs = stmt
         .executeQuery("select * from emp order by sal");
       rs.next();
       System.out.println(rs.getInt(1));
       rs.last();
       System.out.println(rs.getString(1));
       System.out.println(rs.isLast());
       System.out.println(rs.isAfterLast());
       System.out.println(rs.getRow());
       rs.previous();
       System.out.println(rs.getString(1));
       rs.absolute(6);
       System.out.println(rs.getString(1));
       rs.close();
       stmt.close();
       conn.close();
      } catch (SQLException e) {
       e.printStackTrace();
      }
     }
    }


    評論

    # re: JDBC簡單舉例[未登錄]  回復  更多評論   

    2008-07-03 18:14 by yue
    很全面

    # re: JDBC簡單舉例  回復  更多評論   

    2008-07-04 09:24 by owner
    哈哈,謝謝夸獎,好久沒有動靜了

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 免费精品视频在线| 美女免费视频一区二区| 国产免费一区二区视频| 亚洲精品无码av天堂| 日本在线观看免费高清| 亚洲av成人一区二区三区在线观看| 亚洲人成网站色7799| 国产男女性潮高清免费网站| 美女免费视频一区二区| 亚洲精品tv久久久久| 成在线人免费无码高潮喷水| 亚洲va无码手机在线电影| 久久99国产乱子伦精品免费| 亚洲av日韩av无码av| 热99re久久免费视精品频软件| 色窝窝亚洲AV网在线观看| 全黄a免费一级毛片人人爱| a级毛片免费网站| 亚洲最大福利视频网站| 成人毛片免费在线观看| 深夜久久AAAAA级毛片免费看| 色噜噜AV亚洲色一区二区| 一级毛片免费视频| 亚洲中文字幕乱码一区| 亚洲国产专区一区| 57pao国产成视频免费播放| 99亚偷拍自图区亚洲| 久久精品国产精品亚洲人人| 一级毛片免费视频| 亚洲AV无码AV吞精久久| 亚洲综合国产一区二区三区| 91短视频在线免费观看| 在线观看亚洲免费视频| 国产∨亚洲V天堂无码久久久| 中文字幕免费观看| 美女18毛片免费视频| 亚洲av综合色区| 日本人的色道www免费一区| 免费看成人AA片无码视频吃奶| 亚洲一卡二卡三卡四卡无卡麻豆| 亚洲高清视频一视频二视频三|