java2從頭開學(1)

          import java.sql.*;
          import java.io.*;
          /**
          * <p>Title: JDBC連接數(shù)據(jù)庫</p>
          * <p>Description: 本實例演示如何使用JDBC連接Oracle數(shù)據(jù)庫,并演示添加數(shù)據(jù)和查詢數(shù)據(jù)。</p>
          */
          public class JDBCConn{
          private? String url="";//數(shù)據(jù)庫連接字符串
          private? String username="";//數(shù)據(jù)庫用戶名
          private? String password="";//數(shù)據(jù)庫密碼
          ?
          /**
          *<br>方法說明:獲得數(shù)據(jù)連接
          *<br>輸入?yún)?shù):s
          *<br>返回類型:Connection 連接對象
          */
          public Connection conn(){
          try {
          ? //第一步:加載JDBC驅動
          Class.forName("oracle.jdbc.driver.OracleDriver");
          //第二步:創(chuàng)建數(shù)據(jù)庫連接
          Connection con =DriverManager.getConnection(url, username, password);
          return con;
          }catch(ClassNotFoundException cnf){
          ? System.out.println("driver not find:"+cnf);
          ? return null;
          }catch(SQLException sqle){
          ? System.out.println("can't connection db:"+sqle);
          ? return null;
          }
          ? catch (Exception e) {
          System.out.println("Failed to load JDBC/ODBC driver.");
          return null;
          }
          }
          /**
          *<br>方法說明:執(zhí)行查詢SQL語句
          *<br>輸入?yún)?shù):Connection con 數(shù)據(jù)庫連接
          *<br>輸入?yún)?shù):String sql 要執(zhí)行的SQL語句
          *<br>返回類型:void
          */
          public void query(Connection con, String sql){
          try{
          if(con==null){
          throw new Exception("database connection can't use!");
          }
          if(sql==null) throw new Exception("check your parameter: 'sql'! don't input null!");
          //第三步:獲取Staetment對象
          Statement stmt = con.createStatement();
          //第四步:執(zhí)行數(shù)據(jù)庫操作(查詢操作)
          ResultSet rs = stmt.executeQuery(sql);
          //第五步:處理結果集
          ?? ResultSetMetaData rmeta = rs.getMetaData();
          ?? //獲得數(shù)據(jù)字段個數(shù)
          int numColumns = rmeta.getColumnCount();
          while(rs.next())
          ?? {
          ???? for(int i = 0;i< numColumns;i++)
          ???? {
          ??? String sTemp = rs.getString(i+1);
          ??? System.out.print(sTemp+"? ");
          ???? }
          ??? System.out.println("");
          ?? }
          }catch(Exception e){
          System.out.println("query error:"+e);
          }
          }
          /**
          *<br>方法說明:執(zhí)行插入、更新、刪除等沒有返回結果集的SQL語句
          *<br>輸入?yún)?shù):Connection con 數(shù)據(jù)庫連接
          *<br>輸入?yún)?shù):String sql 要執(zhí)行的SQL語句
          *<br>返回類型:void
          */
          public void execute(Connection con, String sql){
          try{
          if(con==null) return;
          //第三步:獲取Statement對象
          ??? Statement stmt = con.createStatement();
          //第四步:執(zhí)行數(shù)據(jù)庫操作(更新操作)
          ??? stmt.executeUpdate(sql);
          ??? System.out.println("update executed successly");
          }catch(Exception e){
          System.out.println("execute error: sql = "+sql);
          System.out.println(e);
          }//end try catch
          }//end execute
          /**
          *<br>方法說明:實例演示
          *<br>輸入?yún)?shù):無
          *<br>返回類型:void
          */
          public void demo(){
          String sSQL="";
          BufferedReader stdin=new BufferedReader(new? InputStreamReader(System.in));
          try{
          System.out.println("please input update SQL string");
          sSQL=stdin.readLine();//獲取命令行輸入(更新字符串)
          Connection conn = conn();//執(zhí)行自定義連接方法(獲取數(shù)據(jù)庫連接對象)
          execute(conn,sSQL);//執(zhí)行自定義更新方法
          String sql = "select * from TBL_USER";
          query(conn,sql);//執(zhí)行自定義查詢方法(查詢并處理結果集)
          //第六步:關閉數(shù)據(jù)庫連接
          conn.close();
          }catch(SQLException se){
          System.out.println(se);
          }catch(Exception e){
          System.out.println(e);
          }
          ?
          }
          /**
          *<br>方法說明:主方法
          *<br>輸入?yún)?shù):String[] args 命令行參數(shù)(包括:數(shù)據(jù)庫連接URL,
          *<br>用戶名,密碼)
          *<br>返回類型:void
          */
          public static void main(String[] arg){
          if(arg.length!=3){
          System.out.println("use: java JDBCConn url username password");
          return;
          }
          JDBCConn oc = new JDBCConn();
          oc.url = arg[0];
          oc.username=arg[1];
          oc.password=arg[2];
          oc.demo();
          }
          }

          posted on 2008-04-11 14:29 dripstone 閱讀(199) 評論(0)  編輯  收藏


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


          網(wǎng)站導航:
           
          <2008年4月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          導航

          統(tǒng)計

          常用鏈接

          留言簿(1)

          隨筆分類(1)

          隨筆檔案(16)

          友情鏈接

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 绿春县| 迁安市| 航空| 富顺县| 肥东县| 聂拉木县| 浦江县| 饶平县| 商河县| 临武县| 桑日县| 江川县| 上蔡县| 东阳市| 杨浦区| 玛曲县| 威远县| 固镇县| 乌恰县| 荆州市| 武邑县| 正阳县| 右玉县| 小金县| 屏东市| 辽阳市| 抚顺县| 高青县| 奉节县| 渝北区| 衡水市| 东宁县| 丹巴县| 万宁市| 昭觉县| 安陆市| 祁阳县| 许昌县| 林周县| 慈利县| 蒙城县|