java2從頭開學(xué)(1)

          import java.sql.*;
          import java.io.*;
          /**
          * <p>Title: JDBC連接數(shù)據(jù)庫</p>
          * <p>Description: 本實(shí)例演示如何使用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 連接對(duì)象
          */
          public Connection conn(){
          try {
          ? //第一步:加載JDBC驅(qū)動(dòng)
          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對(duì)象
          Statement stmt = con.createStatement();
          //第四步:執(zhí)行數(shù)據(jù)庫操作(查詢操作)
          ResultSet rs = stmt.executeQuery(sql);
          //第五步:處理結(jié)果集
          ?? ResultSetMetaData rmeta = rs.getMetaData();
          ?? //獲得數(shù)據(jù)字段個(gè)數(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í)行插入、更新、刪除等沒有返回結(jié)果集的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對(duì)象
          ??? 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>方法說明:實(shí)例演示
          *<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ù)庫連接對(duì)象)
          execute(conn,sSQL);//執(zhí)行自定義更新方法
          String sql = "select * from TBL_USER";
          query(conn,sql);//執(zhí)行自定義查詢方法(查詢并處理結(jié)果集)
          //第六步:關(guān)閉數(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 閱讀(201) 評(píng)論(0)  編輯  收藏


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


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

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆分類(1)

          隨筆檔案(16)

          友情鏈接

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 察哈| 会同县| 南昌县| 奎屯市| 武山县| 襄樊市| 宝应县| 都安| 始兴县| 新沂市| 巴南区| 苍山县| 康保县| 宿迁市| 治县。| 文山县| 靖宇县| 内江市| 通河县| 泰和县| 平阴县| 江山市| 太湖县| 绍兴市| 桂阳县| 益阳市| 正阳县| 莱州市| 玛纳斯县| 宜兰市| 南宁市| 霍山县| 福海县| 新密市| 乌鲁木齐县| 临海市| 邛崃市| 嘉义市| 南昌县| 祁东县| 永德县|