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

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

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

    JAVA歷程
    希望我的這個(gè)博客能給那些想在java的海洋中拼搏的人有所幫助。謝謝光臨!
    posts - 8,  comments - 6,  trackbacks - 0

                    第一種

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    public class Conn {
     private static Conn conn = null;
     public static Conn getInstance() {
      if (conn == null) conn = new Conn();
      return conn;
     } 
     public static Connection getCon() {  
      String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; 
      String username = "用戶名"; 
      String password = "密碼"; 
      String url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=pubs";
      Connection con = null;
      try {
       Class.forName(driver);
       con = DriverManager.getConnection(url, username, password); 
       Statement stmt=con.createStatement();
              ResultSet rs=stmt.executeQuery("select job_desc from jobs");
              while(rs.next()) {
                 System.out.println(rs.getString(1));
              }
              //conn.close();
      } catch (ClassNotFoundException e) { 
       e.printStackTrace();
      } catch (SQLException e) { 
       e.printStackTrace(); 
      }
      return con; 
     }
     public static void main(String[] args) {  
      System.out.println(getCon());
     }
    }

     運(yùn)行這個(gè)例子還需要導(dǎo)入3個(gè)jar包,分別是mssqlserver.jar、msutil.jar和msbase.jar,可以到微軟的網(wǎng)站去下載(http://www.microsoft.com/downloads/details.aspx?FamilyId...38-2AA54BFDC03A&displaylang=en),如果你下載的是setup.exe,還需要安裝它,安裝后會(huì)生成上面的三個(gè)jar文件。此JDBC驅(qū)動(dòng)實(shí)現(xiàn)了 JDBC 2.0。



                     第二種 用JDBC連接數(shù)據(jù)庫(kù),須創(chuàng)建數(shù)據(jù)源

    JDBC技術(shù)事實(shí)上是一種能通過(guò)JAVA語(yǔ)言訪問(wèn)任何結(jié)構(gòu)化數(shù)據(jù)庫(kù)的應(yīng)用程序接口(API)(Sun這樣說(shuō)的,我也不知道是不是真的),而且現(xiàn)在的JDBC 3.0據(jù)Sun說(shuō)也能訪問(wèn)Execel等電子表格程序!

    JDBC對(duì)于數(shù)據(jù)庫(kù)的訪問(wèn)有四種方式,我們這里只是介紹兩種:

    第一種是通過(guò)ODBC做為“橋”(Bridge)對(duì)數(shù)據(jù)庫(kù)訪問(wèn),第二種是直接對(duì)數(shù)據(jù)庫(kù)訪問(wèn)。

    我們先來(lái)看看第一種JDBC<-->ODBC訪問(wèn)的流程:

    JDBC Driver Mannager->JDBC<->ODBC橋->ODBC->數(shù)據(jù)庫(kù)客戶機(jī)驅(qū)動(dòng)庫(kù)->數(shù)據(jù)庫(kù)服務(wù)器->返回查詢結(jié)果,在這種訪問(wèn)中值的我們注意的是雖然JAVA是"Write Once ,Run Anywhere",但是如果通過(guò)這種訪問(wèn)的話,需要客戶端必須設(shè)置ODBC和有相應(yīng)的數(shù)據(jù)庫(kù)客戶機(jī)的驅(qū)動(dòng),當(dāng)你看了下面的另外一個(gè)流程的時(shí)候或許你會(huì)想:明明下一種更方面,為什么還要有這個(gè)東西的產(chǎn)生!呵呵,因?yàn)椋幢厮械臄?shù)據(jù)庫(kù)服務(wù)器提供商都提供下面的JDBC驅(qū)動(dòng)程序(給JDBC訪問(wèn)提供相應(yīng)的接口),所以就有了JDBC<->ODBC Bridge。

    接著再讓我們來(lái)看看第二種訪問(wèn)流程:

    JDBC Driver Mannager->局部JDBC驅(qū)動(dòng)->客戶端數(shù)據(jù)庫(kù)->數(shù)據(jù)庫(kù)服務(wù)器->返回查詢結(jié)果,這種訪問(wèn)事實(shí)上是轉(zhuǎn)換JDBC調(diào)用為相應(yīng)的數(shù)據(jù)庫(kù)(Oracle, Sybase, Informix, DB2, 和其他的數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)管理系統(tǒng))的客戶端API調(diào)用(這么說(shuō),不知道大家能不能懂,說(shuō)簡(jiǎn)單點(diǎn)就好像ASP不是通過(guò)DSN對(duì)數(shù)據(jù)庫(kù)訪問(wèn)而是通過(guò)OLEDB訪問(wèn),說(shuō)道這里我還是不知道大家能不能明白我的意思。哎呀,不要扔雞蛋嘛!),這種方式的訪問(wèn)需要相應(yīng)的數(shù)據(jù)庫(kù)提供商提供相應(yīng)的JDBC驅(qū)動(dòng)程序,但是有一種好處,可以獨(dú)立于odbc用于可以隨處可Run的客戶端的瀏覽器中的Applet程序。
    我們下面將給大家一個(gè)通過(guò)JDBC-ODBC橋數(shù)據(jù)庫(kù)訪問(wèn)的實(shí)例,但是在看下面的事例前我想問(wèn)大家一次:JDK1.3裝了嗎?數(shù)據(jù)庫(kù)驅(qū)動(dòng)裝了嗎(我使用的是SQLserver)?你該沒(méi)有使用Linux吧?雖然java支持Linux,但是老兄我可沒(méi)有使用Linux喲(這同JAVA的Write Once ,Run Anywhere沒(méi)有關(guān)系),由于使用了運(yùn)行于Win下面的ODBC,我建議你看看這篇東西http://www.aspcn.com/showarticle.asp?id=112,否則你要是有了問(wèn)題,出不了結(jié)果那豈不是要怪我(不過(guò)欲加之罪,何患無(wú)吃... ...),冤枉呀!

    哎呀,說(shuō)了這么多的廢話,還是讓我們來(lái)看看到底JDBC的調(diào)用吧!既然我們是通過(guò)odbc訪問(wèn)數(shù)據(jù)庫(kù),所以這個(gè)odbc是跑不了的,我們先來(lái)設(shè)置你的odbc:打開(kāi)你的odbc數(shù)據(jù)源->選擇系統(tǒng)dsn(Click加新的dsn-)->接下來(lái)輸入選擇數(shù)據(jù)庫(kù)類型、輸入dsn名:、選擇服務(wù)器、連接數(shù)據(jù)庫(kù)的方式、輸入數(shù)據(jù)庫(kù)的登陸用戶和密碼->測(cè)試連接,如果測(cè)試成功的話,那么你的dsn就建立好了,我的dsn名為Sqlserver.使用的是sqlserver7.0,以 “sa”登陸,密碼為空。這些東西都是后面要用道的!

    好了下面讓我們來(lái)看程序代碼: (該代碼已經(jīng)通過(guò)運(yùn)行)
    //###########################################################
    //代碼開(kāi)始
    //###########################################################

    import java.sql.*;
    //加載java數(shù)據(jù)連接包,java基本所有的數(shù)據(jù)庫(kù)的調(diào)用的都在這個(gè)東西里面

    public class InsertCoffees {

    public static void main(String args[]) {

    String url = "jdbc:odbc:sqlserver";
    //取得連接的url名,注意sqlserver是dsn名
    Connection con;
    //實(shí)例化一個(gè)Connection對(duì)象
    Statement stmt;
    String query = "select * from col_link";
    //選擇所有的Col_link表中的數(shù)據(jù)輸出

    try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    //加載jdbc-odbc橋驅(qū)動(dòng)

    } catch(java.lang.ClassNotFoundException e) {
    System.err.print("ClassNotFoundException: ");
    //加載jdbc-odbc橋錯(cuò)誤
    System.err.println(e.getMessage());
    //其他錯(cuò)誤
    }

    try {

    con = DriverManager.getConnection(url, "sa", "");
    //數(shù)據(jù)庫(kù)連接


    stmt = con.createStatement();
    //Create 一個(gè)聲明
    stmt.executeUpdate("CREATE TABLE col_link (sitename varchar (20) NULL ,siteurl varchar (50) NULL) ");
    //執(zhí)行了一個(gè)sql語(yǔ)句生成了一個(gè)表col_link的表
    stmt.executeUpdate("insert into col_link values('ASP中華網(wǎng)','http://www.aspcn.com')");
    stmt.executeUpdate("insert into col_link values('永遠(yuǎn)到底有多遠(yuǎn)','http://xuankong.com')");
    //執(zhí)行一個(gè)insert into語(yǔ)句
    stmt.executeUpdate("update col_link set siteurl='http://www.aspcn.com/xuankong/xuankongt.jpg' where siteurl='http://xuankong.com'");
    //執(zhí)行一個(gè)update語(yǔ)句,更新數(shù)據(jù)庫(kù)
    ResultSet rs = stmt.executeQuery(query);
    //返回一個(gè)結(jié)果集
    System.out.println("Col_link表中的數(shù)據(jù)如下(原始數(shù)據(jù))");
    //下面的語(yǔ)句使用了一個(gè)while循環(huán)打印出了col_link表中的所有的數(shù)據(jù)
    System.out.println("站點(diǎn)名 "+" "+"站點(diǎn)地址");
    System.out.println("---------------"+" "+"----------------");
    while (rs.next()) {
    String s = rs.getString("sitename");
    String f = rs.getString("siteurl");
    //取得數(shù)據(jù)庫(kù)中的數(shù)據(jù)
    System.out.println(s + " " + f);
    /*String t = rs.getString(1);
    String l = rs.getString(2);
    System.out.println(t + " " + l);*/
    /*jdbc提供了兩種方法識(shí)別字段,一種是使用getXXX(注意這里的getXXX表示取不同類型字段的不同的方法)獲得字段名,
    第二種*是通過(guò)字段索引,在這里我把第二種方法注釋了*/
    /*你可以訪問(wèn)這個(gè)連接獲得getxxx的用法:http://java.sun.com/docs/books/tutorial/jdbc/basics/_retrievingTable.html*/
    }
    stmt.close();
    con.close();
    //上面的語(yǔ)句關(guān)閉聲明和連接
    } catch(SQLException ex) {
    System.err.println("SQLException: " + ex.getMessage());
    //顯示數(shù)據(jù)庫(kù)連接錯(cuò)誤或者查詢錯(cuò)誤
    }
    }
    }

    posted on 2007-05-14 12:53 I LOVE JAVA 閱讀(329) 評(píng)論(0)  編輯  收藏 所屬分類: Jdbc、Jdo、Database方面

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 色久悠悠婷婷综合在线亚洲| 亚洲自偷自偷精品| 日本不卡免费新一区二区三区| 久久精品国产亚洲AV果冻传媒| 国产亚洲成av人片在线观看| 十八禁的黄污污免费网站| 久久综合九九亚洲一区| 久久久久国色AV免费观看性色| 亚洲伊人tv综合网色| 午夜影视在线免费观看| 亚洲色偷偷色噜噜狠狠99网| 国产黄色免费网站| 亚洲中文字幕在线无码一区二区| 国产无遮挡吃胸膜奶免费看| 精品熟女少妇av免费久久| 精品久久久久久亚洲| 黄瓜视频影院在线观看免费| 国产精品免费久久| 99久久国产亚洲综合精品| 国产亚洲欧洲精品| 日本免费一二区在线电影| 3344免费播放观看视频| 亚洲第一成年人网站| 色播精品免费小视频| 国产VA免费精品高清在线| 亚洲性无码AV中文字幕| 亚洲毛片在线观看| 亚洲精品成人片在线观看| 啦啦啦中文在线观看电视剧免费版 | 91热成人精品国产免费| 一级毛片正片免费视频手机看 | 毛片基地看看成人免费| 亚洲AV香蕉一区区二区三区| 亚洲码一区二区三区| 国产亚洲A∨片在线观看| 免费h黄肉动漫在线观看| 少妇亚洲免费精品| 毛片亚洲AV无码精品国产午夜 | a级毛片免费观看视频| 亚洲美免无码中文字幕在线| 精品国产亚洲一区二区在线观看|