<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)站導航:
     
    主站蜘蛛池模板: 亚洲尹人香蕉网在线视颅| 校园亚洲春色另类小说合集| 国内免费高清在线观看| 婷婷国产偷v国产偷v亚洲| 亚洲第一极品精品无码久久| 免费黄色网址网站| 一级a性色生活片久久无少妇一级婬片免费放| 国产亚洲精品不卡在线| 色欲A∨无码蜜臀AV免费播| 亚洲日本成本人观看| 亚洲精品乱码久久久久久自慰 | 久久亚洲免费视频| 亚洲AV无码一区二区一二区| 亚洲一区二区三区香蕉| 成全视频在线观看免费高清动漫视频下载| 九九九精品视频免费| 国产成人精品日本亚洲18图| 亚洲乱码无码永久不卡在线| 免费无码又爽又高潮视频 | 亚洲午夜无码AV毛片久久| 1000部羞羞禁止免费观看视频| 美女一级毛片免费观看| 亚洲另类小说图片| 亚洲欧洲日产国码av系列天堂 | 久久久久亚洲AV无码专区体验| 免费国产一级特黄久久| 999久久久免费精品国产 | 亚洲人成免费电影| a级成人毛片免费图片| 老司机亚洲精品影院在线观看| 亚洲视频一区在线观看| 亚洲综合无码AV一区二区| 免费特级黄毛片在线成人观看| 亚洲日本在线免费观看| 亚洲精品黄色视频在线观看免费资源| 亚洲愉拍一区二区三区| 亚洲视频一区在线播放| 亚洲AV日韩AV鸥美在线观看| 国产成人精品日本亚洲专区61| 国产精品色午夜视频免费看| 日韩精品无码区免费专区|