<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 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    JDBC簡單舉例

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

    例子1:
    ****************************************************************
    說明:僅僅實現了數據庫的連接,測試了一條查詢語句                              *
    ****************************************************************
    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);//加載驅動程序。
       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
    ********************************************************************
    說明:通過命令行輸入實現數據庫的插入,注意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("參數個數輸入錯誤,請重新運行程序!");
       System.exit(-1);
      }
      try{
       deptno = Integer.parseInt(args[0]);
      } catch (NumberFormatException e) {
       System.out.println("參數輸入錯誤,請輸入數字!");
       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:
    ********************************************************************
    說明:通過命令行輸入實現數據庫的插入,改用了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("參數個數輸入錯誤,請重新運行程序!");
       System.exit(-1);
      }
      try{
       deptno = Integer.parseInt(args[0]);
      } catch (NumberFormatException e) {
       System.out.println("參數輸入錯誤,請輸入數字!");
       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如何調用存儲過程的舉例。                                                           *
    ****************************************************************
    ***************************************************************************  
       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處理可滾動的結果集                                                                                                *
    ************************************************************************
    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
    哈哈,謝謝夸獎,好久沒有動靜了

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品无码专区久久同性男| 在线不卡免费视频| 亚洲色大成网站www永久一区| 黄页网站在线视频免费| 四虎亚洲国产成人久久精品| 男男gay做爽爽的视频免费| 免费一级毛片正在播放| eeuss影院www天堂免费| 自拍偷自拍亚洲精品第1页 | 亚洲精品无码成人| 在线观看无码的免费网站| 亚洲国产精品成人午夜在线观看| 色播在线永久免费视频| 美女免费视频一区二区| 亚洲宅男天堂在线观看无病毒| 热99RE久久精品这里都是精品免费| 亚洲成色999久久网站| 免费看男女下面日出水来| 亚洲av永久无码精品网址| 久久久久国产成人精品亚洲午夜 | 久久久无码精品亚洲日韩蜜臀浪潮 | 国产亚洲精久久久久久无码AV| 好男人资源在线WWW免费| 亚洲AV午夜福利精品一区二区 | 久久久久免费精品国产| 亚洲欧洲日本精品| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 国产精品永久免费视频| 亚洲午夜视频在线观看| 免费看又爽又黄禁片视频1000| 添bbb免费观看高清视频| 亚洲国产精品国自产拍AV| 在线观看免费人成视频| 国产精品1024在线永久免费| 亚洲小说图片视频| 亚洲av日韩片在线观看| **一级一级毛片免费观看| 国产亚洲午夜精品| 亚洲黄色三级视频| 亚洲第一网站男人都懂| 精品久久8x国产免费观看|