日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

SQL Server2000+JDBC常見問題及解決

瀏覽:196日期:2024-07-05 15:27:19

SQL Server 2000 是當今網絡編程中使用的比較多的一個數據庫系統,java是目前最流行的編程語言,在編程中涉及的比較多也比較重要的就是數據庫問題,java自身提供了對各類主流數據庫系統的支持,通過java.sql 庫,提供了統一的接口,使得可以在java環境下不必對程序作大規模的修改,只要更改相應的驅動程序,即可實現對各類數據庫的操作,從而提高軟件的生存周期和降低軟件的開發成本和維護費用,在這種情況下SQL Server 2000 和java 的融合問題就顯得比較重要了,本文簡要地闡述一下SQL Server 2000 和jdk的融合問題。

系統需求:

 數據庫:SQL Server 2000 sp3 驅動程序:SQL Server driver for jdbc  java版本:jdk1.2以上

1:我們首先使用jdbc-odbc橋來實現數據庫的連接,這個相對簡單。首先使用SQL Server 企業管理其建立一個數據庫test,并建立一個簡單的表 first_table

建立odbc數據源 ,各步驟采用默認操作即可

編寫一個簡單的測試程序,該程序主要實現數據庫的連接,以及一個簡單的sql操作 ,代碼如下:

/***********************************************/*/*DbTest.java/*/******************************************* */

import java.sql.*;

public class DbTest {

 Connection con; Statement sta; ResultSet rs;

 String driver; String url; String user; String pwd; public DbTest() {driver = 'sun.jdbc.odbc.JdbcOdbcDriver';url = 'jdbc:odbc:store_manager';user = 'share';pwd = 'share';init(); } public void init() {try{ Class.forName(driver); System.out.println('driver is ok'); con = DriverManager.getConnection(url,user,pwd); System.out.println('conection is ok'); sta = con.createStatement(); rs = sta.executeQuery('select * from room'); while(rs.next())System.out.println(rs.getInt('roomNum')); }catch(Exception e){ e.printStackTrace();} }

 public static void main(String args [])//自己替換[] {new DbTest(); }};

運行結果如下:

driver is okconection is ok100110021003100410051006Press any key to continue...

順利通過測試

2、我們這次不通過odbc橋來操作數據庫,我們采用SQL Server driver 來實現對SQL Server數據庫的操作, 這將是我們這篇文章的重點,因為jdbc-odbc橋是一種常見的操作windows系統數據庫的常用方法,但它存在的缺點很多,所以現在很多開發者都側重于使用sqlserver driver來操作,在這里我們通過一步步的調試,來加深讀者對這種連接的理解

在通常的理解下,只要我們裝了sqlserver driver for jdbc 我們便可進行數據庫編程,事實則不然,首先我們看下邊的代碼:

/***********************************************/*/*DbTest.java/*http://www.mypchelp.cn/******************************************* */

import java.sql.*;

public class DbTest {

 Connection con; Statement sta; ResultSet rs;

 String driver; String url; String user; String pwd; public DbTest() {driver = 'com.microsoft.jdbc.sqlserver.SQLServerDriver';;url = 'jdbc:microsoft:sqlserver://localhost:1433;DatabaseName =StoreManager';user = 'sa';pwd = 'potsmart10';init(); } public void init() {try{ Class.forName(driver); System.out.println('driver is ok'); con = DriverManager.getConnection(url,user,pwd); System.out.println('conection is ok'); sta = con.createStatement(); rs = sta.executeQuery('select * from room'); while(rs.next()) System.out.println(rs.getInt('roomNum')); }catch(Exception e){ e.printStackTrace();} }

 public static void main(String args [])//自己替換[] {new DbTest(); }};

這段代碼跟上變得代碼是一樣的,差別在于驅動,還有url,這是在使用sqlserver driver for jdbc 中遇到的困惑。按道理講,上邊這段代碼應該沒錯,可首先我們來看一下,如果SQL Server服務器沒有升級到sp3(在使用jdbc時,如果系統是xp或者2003務必要把sqlserver 升級到sp3,往上到處都有下的),我們看看運行結果

driver is okjava.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing 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(DriverManager.java:523)at java.sql.DriverManager.getConnection(DriverManager.java:171)at DbTest.init(DbTest.java:32)at DbTest.<init>(DbTest.java:25)at DbTest.main(DbTest.java:46)Press any key to continue...

出現上邊錯誤的主要原因是默認的數據庫服務器端口 1433沒有打開,無法直接連接 。

如果升級到sp3則這個問題可以結決,我們再來看看升級之后,程序運行的結果

driver is okconection is okjava.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]對象名 'room' 無效。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(UnknownSource)at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(UnknownSource)at com.microsoft.jdbc.sqlserver.tds.TDSExecuteRequest.processReplyToken(Unknown Source)at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(UnknownSource)at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)

at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)at com.microsoft.jdbc.base.BaseStatement.executeQuery(Unknown Source)at DbTest.init(DbTest.java:35)at DbTest.<init>(DbTest.java:25)at DbTest.main(DbTest.java:46)Press any key to continue...

在這兒,用戶已經登陸上去,但是卻不能訪問里邊的數據表,出現這個問題的原因在于sa用戶為系統用戶,它雖然能夠登陸數據庫,但是storeManager數據庫里邊卻沒有這個用戶的訪問權限,所以,我們現在為這個數據庫重新建立一個用戶share ,建立過程如下:在storeManager數據庫中選重用戶 ---〉新建用戶 -- 〉名稱選擇(這一步中有兩個關鍵點 1:身份驗證選sql身份驗證,默認數據庫選StoreManager)-〉建立新教色share ,此時更改程序,將用戶登陸名和密碼修改一下,重新運行程序

driver is okconection is ok100110021003100410051006Press any key to continue...

這次順利通過測試

總結:

SQL Server和jdbc 的融合問題,關鍵涉及到sp3補丁(端口開放)還有用戶問題,解決這兩個問題之后,剩余的便是sqlserver 操作問題了,還有一點在遠程操作的時候,要把sqlserver 組設置一下,在安全性里邊亦將身份驗證更改為SQL Server 驗證即可。

標簽: JDBC
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美日韩在线观看首页| 午夜在线一区二区| 成人av二区| 亚洲啊v在线| 国产成人精品三级高清久久91| 欧美国产不卡| 美腿丝袜在线亚洲一区| 国产欧美一区二区三区精品观看| 日韩和欧美的一区| 国产九一精品| 欧美精品97| 国产美女高潮在线观看| 亚洲www啪成人一区二区| 国产在线|日韩| 日本大胆欧美人术艺术动态| 日韩精品一页| 国产一区二区三区日韩精品| 亚洲www啪成人一区二区| 欧美肉体xxxx裸体137大胆| 99精品美女| 免费人成黄页网站在线一区二区| 日本综合精品一区| 久久国产欧美日韩精品| 精品久久久中文字幕| 亚洲性色视频| 亚洲精选久久| 福利一区在线| 久久亚洲色图| 黄色精品视频| 亚洲一区欧美激情| 国产欧美日韩在线一区二区| 欧美精品日日操| 日韩高清国产一区在线| 欧美天堂视频| 日本va欧美va欧美va精品| 在线亚洲人成| 日韩精品一区二区三区中文在线| 国产精品亚洲综合久久| 色婷婷精品视频| 国产一区 二区| 合欧美一区二区三区| 成人国产精品久久| 日韩av不卡在线观看| 美女少妇全过程你懂的久久| 欧美日韩a区| 亚洲免费精品| 成人三级高清视频在线看| 91亚洲精品在看在线观看高清| 久久久久久久久久久妇女| 欧美91在线| 日韩国产欧美在线播放| 日韩一区二区久久| 精品久久免费| 国产免费av一区二区三区| 性一交一乱一区二区洋洋av| 欧美成人基地 | 亚州av乱码久久精品蜜桃| 欧美日韩视频免费看| 精品一区在线| 欧美亚洲网站| 日韩黄色av| 四虎成人精品一区二区免费网站| 1024精品久久久久久久久| 99久久婷婷这里只有精品| 日韩不卡视频在线观看| 国产自产自拍视频在线观看| 欧美激情另类| 成人av三级| 99久久99视频只有精品| 日韩精品一卡| 欧美一区二区三区激情视频| 久久理论电影| 99香蕉国产精品偷在线观看| 久久中文字幕av| 岛国av在线网站| 四虎8848精品成人免费网站| 精品在线网站观看| 国产第一亚洲| 久久久久久久久丰满| 免费日韩av片| 97久久超碰| 精品亚洲二区| www.九色在线| 蜜桃精品在线| 自由日本语亚洲人高潮| 亚洲精品欧美| 97精品中文字幕| 国产婷婷精品| 国产人成精品一区二区三| 国产一区日韩| 日韩综合在线| 婷婷亚洲综合| 国产欧美二区| 亚洲精品888| 国产精品jk白丝蜜臀av小说| 日韩精品一区二区三区免费观影| 热久久国产精品| 成人在线观看免费视频| 欧美1级日本1级| 国产精品探花在线观看| 日韩伦理一区| 日韩高清成人在线| 久久精品91| 国产麻豆精品久久| 久久激情婷婷| 亚洲电影在线| 日韩中文字幕无砖| 麻豆网站免费在线观看| 蜜臀国产一区二区三区在线播放| 老司机精品视频网| 激情婷婷综合| 国产精品二区不卡| 日韩精品一区二区三区中文| 久久久国产亚洲精品| 国产日韩欧美三区| 欧美天堂亚洲电影院在线观看| 欧美成人精品午夜一区二区| 蜜桃一区二区三区在线| 99精品一区| 久久不卡国产精品一区二区| 久久精品亚洲人成影院| 精品国产亚洲一区二区三区大结局| 精品在线99| 捆绑调教日本一区二区三区| 国产伦理久久久久久妇女| 黄色精品网站| 91精品久久久久久久久久不卡| 欧美偷窥清纯综合图区| 婷婷色综合网| 电影天堂国产精品| 国产午夜一区| 欧美日韩一区二区三区不卡视频| 国产视频一区在线观看一区免费| 久久精品亚洲人成影院 | 日韩精品一区二区三区中文| 好看不卡的中文字幕| 日韩精品一卡| 欧洲av不卡| 欧美日韩一二三四| 亚洲高清激情| 狠狠爱成人网| 视频一区中文字幕精品| 日韩欧美中文在线观看| 综合一区在线| 日韩中出av| 首页国产欧美日韩丝袜| 喷白浆一区二区| 色婷婷成人网| 欧美亚洲三区| 国产一区二区三区亚洲综合| 国产传媒在线观看| 99pao成人国产永久免费视频 | 婷婷国产精品| 丝袜美腿亚洲色图| 欧美中文高清| 韩国女主播一区二区三区| 精品精品国产三级a∨在线| 日韩久久电影| 九九精品调教| 国产精品久久久免费| 日韩av有码| 好看的亚洲午夜视频在线| 羞羞答答国产精品www一本 | 久久中文亚洲字幕| 国产在线不卡| 亚洲精品福利| 免费日韩成人| 亚洲国产不卡| 奇米狠狠一区二区三区| 国产精品精品| 1024精品久久久久久久久| 国产视频一区在线观看一区免费| 国产激情久久| 美女久久久久| 国产福利一区二区三区在线播放| 伊人久久高清| 国产精品xvideos88| 男人天堂欧美日韩| 精品国产a一区二区三区v免费| 精品免费av在线| 欧美精品观看| 日韩电影免费网站| 免费精品视频| а√天堂8资源中文在线| 欧美日韩激情| a天堂资源在线| 亚洲成人va| 国产精品巨作av| aa亚洲婷婷| xxxxx性欧美特大| 国产乱论精品| 日韩精品视频网| 日韩视频免费| 99久久精品国产亚洲精品| 麻豆久久一区| 麻豆成人av在线| 欧美精品三级在线| 最新亚洲国产| 国产日韩亚洲欧美精品| 日韩一区二区三区在线看|