Junky's IT Notebook

          統(tǒng)計

          留言簿(8)

          積分與排名

          WebSphere Studio

          閱讀排行榜

          評論排行榜

          談jdbc連接sql server2000數據庫

          談jdbc連接sql server2000數據庫
          ?
          前提:1.sql server 2000 任意版本??? //本人用的是個人版
          ????? 2.sql server 2000 sp3升級包
          ????????? 你可以在這里下載http://www.bossed.com.cn/download/detailcp.asp?id=74
          ????? 3.sql server 2000 jdbc 驅動? //這個就需要自己找了!
          ????? 4.jdk1.4????????????????????? //以下的例子是該版本
          在以上條件滿足的情況下,作以下事情
          ????? 1.建立新數據庫名為:TESTDB ,并在其中建立一個名為test_student的表
          ????????? 包括以下幾列(Sno,Sname,Sage,Ssex,Sclass)?
          ????? 2.開始編寫你自己的連接數據庫的類(我這里是借鑒他人的版權不歸我所有),你也可以用自己的方法
          class Testj{
          ??? public static void main(String args[])
          ??? {?
          ??????? String RL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=TESTDB";
          ??????? String user ="king";//這里替換成你自已的數據庫用戶名
          ??????? String password = "sql";//這里替換成你自已的數據庫用戶密碼
          ??????? String sqlStr = "select * from test_student";

          ??????? try{??? //這里的異常處理語句是必需的.否則不能通過編譯!???
          ??????????? Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
          ??????????? System.out.println( "類實例化成功!" );
          ??????????? System.out.println("slkdjf");
          ??????????? Connection con = DriverManager.getConnection(RL,user,password);
          ??????????? System.out.println( "創(chuàng)建連接對像成功!" );

          ??????????? Statement st = con.createStatement();
          ??????????? System.out.println( "創(chuàng)建Statement成功!" );

          ??????????? ResultSet rs = st.executeQuery( sqlStr );
          ??????????? System.out.println( "操作數據表成功!" );
          ??????????? System.out.println( "----------------!" );

          ??????????? while(rs.next())
          ??????????? {
          ??????????????? System.out.print(rs.getInt("Sno") + "??? ");
          ??????????????? System.out.print(rs.getString("Sname") + "??? ");
          ??????????????? System.out.print(rs.getInt("Sage") + "??? ");
          ??????????????? System.out.print(rs.getString("Ssex") + "??? ");
          ??????????????? System.out.println(rs.getString("Sclass"));
          ??????????? }
          ??????????? rs.close();
          ??????????? st.close();
          ??????????? con.close();
          ??????? }
          ??????? catch(Exception err){
          ??????????? err.printStackTrace(System.out);
          ??????? }
          ??? }
          }
          下面進行調試:
          ? javac Testj.java
          ? java Testj
          ? 如果正確輸出應該是:
          ? 類實例化成功!
          slkdjf
          創(chuàng)建連接對像成功!
          創(chuàng)建Statement成功!
          操作數據表成功!
          ----------------!
          2000??? 小剛?????????????? 21??? 男??? 12???????
          2001??? 小黃?????????????? 22??? 女??? 12???????
          2002??? 李娜?????????????? 20??? 女??? 11???????
          2003??? 王芳?????????????? 19??? 女??? null
          2004??? 黃明?????????????? 22??? 男??? 11???????
          2005??? 梅蘭?????????????? 21??? 女??? 12???????
          2006??? 李玉?????????????? 22??? 女??? 15???????
          2007??? 李平?????????????? 32??? 女??? 12???????

          注意:這里有幾點要說明
          1.路徑問題:
          ? 你必須配置你的classpath路徑否則他在編譯時會抱錯
          ? java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
          ??????? at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
          ??????? at java.security.AccessController.doPrivileged(Native Method)
          ??????? at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
          ??????? at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
          ??????? at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
          ??????? at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
          ??????? at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
          ??????? at java.lang.Class.forName0(Native Method)
          ??????? at java.lang.Class.forName(Class.java:141)
          ??????? at Test.main(Test.java:11)
          你的路徑應該是這樣配置:你可以在在安裝jdbc驅動后看那里的幫助文檔(是英文的);
          //這里指在xp系統(tǒng)下
          ?classpath = ,;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;
          ????????????? C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;
          ????????????? C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar;
          ? 可千萬不要寫錯喲!
          ?2.sp3補丁包問題:
          ??? 如果你在編譯時出現下列問題 那么你需要下載并安裝sp3補丁包
          ?? java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establis
          hing socket.
          ??????? at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
          ??????? at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
          ??????? at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
          ??????? at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
          ??????? at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
          ??????? at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
          ??????? at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
          ??????? at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
          ??????? at java.sql.DriverManager.getConnection(Unknown Source)
          ??????? at java.sql.DriverManager.getConnection(Unknown Source)
          ??????? at Test.main(Test.java:14)
          3.權限問題???
          ?? 如果你出現類似這樣的問題
          ?? 類實例化成功!
          slkdjf
          java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用戶 'king' 登錄失敗。
          原因: 未與信任 SQL Server 連接相關聯(lián)。
          ??? at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
          ??? at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
          ??? at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
          ??? at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
          ??? at com.microsoft.jdbc.sqlserver.tds.TDSLoginRequest.processReplyToken(Unknown Source)
          ??? at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
          ??? at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
          ??? at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
          ??? at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
          ??? at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
          ??? at java.sql.DriverManager.getConnection(DriverManager.java:512)
          ??? at java.sql.DriverManager.getConnection(DriverManager.java:171)
          ??? at Testj.main(Testj.java:14)
          ???
          原困是未設置SQL SERVER登錄認證模式為混合認證模式,因為SQL SERVER默認安裝后認證模式為WINDOWS認證模式,從而導致出錯。
          解決方法:啟動SQLSERVER企業(yè)管理器,選擇要進行認證模式設置的服務器。右擊該服務器,在彈出菜單中選擇屬性,SQL SERVER將
          彈出屬性對話框在屬性對話框中選擇安全性選項,在身份驗證處選擇“SQL Server和Windows”,然后確定。

          posted on 2006-12-10 11:47 junky 閱讀(981) 評論(0)  編輯  收藏 所屬分類: java

          主站蜘蛛池模板: 章丘市| 西安市| 鹿泉市| 荥阳市| 阿拉善右旗| 怀柔区| 乌拉特中旗| 梁平县| 永昌县| 治县。| 金溪县| 灵璧县| 全南县| 将乐县| 博野县| 崇礼县| 乐昌市| 响水县| 临沧市| 阳春市| 新晃| 凤阳县| 聂拉木县| 柳林县| 台山市| 岳池县| 隆林| 和林格尔县| 亚东县| 贡嘎县| 静乐县| 岱山县| 广州市| 巫溪县| 神农架林区| 蕲春县| 淳化县| 青岛市| 石景山区| 甘洛县| 莆田市|