jbuilder2006連接sqlserver2000的方法
更新時間:2008年10月07日 23:31:12 作者:
xp jbuiler2006 連接SQL SERVER2000的問題
1.其中包括下載JDBC FRO Microsft SQL_Server2000的驅(qū)動程序(在微軟官方網(wǎng)站下的,是sp3版的,這里就不寫具體地址了,網(wǎng)上挺多的,但注意版本,我下的是sp3)。下載后發(fā)現(xiàn)是EXE 文件,雙擊安裝。默認安裝目錄:C:Program FilesMicrosoft SQL Server 2000 Driver for JDBC,其中C:Program FilesMicrosoft SQL Server 2000 Driver for JDBClib目錄下的三個擴展名為.jar是我們要的驅(qū)動。然后配制環(huán)境變量:
在classpath這個環(huán)境變量里加入以下語句:
C:Program FilesMicrosoft SQL Server 2000 Driver for JDBClibmsbase.jar;
C:Program FilesMicrosoft SQL Server 2000 Driver for JDBClibmssqlserver.jar;
C:Program FilesMicrosoft SQL Server 2000 Driver for JDBClibmsutil.jar;
如果你的機子上正確配制了JDK的環(huán)境變量就應該有CLASSPATH這個環(huán)境變量,若沒有就新建一個。
(http://download.microsoft.com/download/4/1/d/41d3e9c0-64d1-451e-947b-7a4cba273b2d/setup.exe)
2.檢查1433端口是否打開:NETSTAT(DOS進入C:\WINDOWS\SYSTEM32下) NETSTAT -AN
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establis
hing socket.
出現(xiàn)上邊錯誤的主要原因是默認的數(shù)據(jù)庫服務器端口 1433沒有打開,無法直接連接 。
這時你在命令提示行中輸入命令:netstat –an 來查看有沒有tcp:0.0.0.0:1433,如果沒有那就肯定是因為數(shù)據(jù)庫服務器端口 1433端口沒開。這時你需要下載SQL_Serve20000的sp4補丁,下載安裝后會發(fā)現(xiàn),默認C盤下SQL2KSP4中setup.dat安裝(******* 很重要******),1433端口已經(jīng)打開了,再次執(zhí)行程序,順利執(zhí)行完畢。
(http://download.microsoft.com/download/9/b/f/9bff6646-2cdb-4069-ada0-548be9cb9338/SQL2000-KB884525-SP4-x86-CHS.EXE)
3 java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用戶 'xxx' 登錄失敗。原困是未設置SQL SERVER登錄認證模式為混合認證模式,因為SQL SERVER默認安裝后認證模式為WINDOWS認證模式,從而導致出錯。
解決方法:啟動SQLSERVER企業(yè)管理器,選擇要進行認證模式設置的服務器。右擊該服務器,在彈出菜單中選擇屬性,SQL SERVER將
彈出屬性對話框在屬性對話框中選擇安全性選項,在身份驗證處選擇“SQL Server和Windows”,然后確定。
4.1、打開Jbuilder,選擇Tools-->Configure-->Libraries。
.2、然后在左邊的列表框下選擇New,填入:Name:sql,Location:User Home,然后點擊Add,
加入目錄C:Program FilesMicrosoft SQL Server 2000 JDBClib,確定 。
.3、Project-->Prject Properties-->Paths-->Required Libraries-->Add
加入剛才添加的User Home/sql確定
.4、Enterprise-->Enterprise Setup-->Database Drivers-->Add,加入User Home/sql,
添加之后在列表框中顯示的是sql.config,確定,重新啟動JBuilder
.5、Tools-->Database
Pilot-->View-->Options-->Drivers-->Add
填入
Driver class:com.microsoft.jdbc.sqlserver.SQLServerDriver
Simple URL:microsoft:sqlserver://localhost:1433;DatabaseName=mybase
確定之后,Tools-->Database Pilot-->New的Driver里選擇
com.microsoft.jdbc.sqlserver.SQLServerDriver
在URL里填入:
microsoft:sqlserver://服務器Ip地址或主機名:1433;DatabaseName=數(shù)據(jù)庫名
點擊確定,雙擊或點擊+號輸入sql數(shù)據(jù)庫的用戶名和密碼,就完成了JB與sql的連接!
5.java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]對象名 ‘xxx' 無效
根本原因:
訪問數(shù)據(jù)庫的用戶有登錄權(quán)限,但無操作表的權(quán)限
解決辦法:
1. 在[企業(yè)控制臺]窗口–[樹]子窗口–[安全性]子樹–[登錄]項里將你使用的登陸用戶的默認數(shù)據(jù)庫設為你所使用的數(shù)據(jù)庫。
2. 在[企業(yè)控制臺]窗口–[樹]子窗口–[安全性]子樹–[登錄]項里新增一個登錄用戶(在其中選擇SQL Server 身份驗證、服務器角色和要訪問的數(shù)據(jù)庫),以后便可用些新增用戶訪問你勾選的數(shù)據(jù)庫了。
大家在用java連接ms sql時可能會這樣的問題
原因是sa用戶為系統(tǒng)用戶,它雖然能夠登陸數(shù)據(jù)庫,但是數(shù)據(jù)庫里邊的權(quán)限都是dbo的,所以,我們現(xiàn)在為這個數(shù)據(jù)庫重新建立一個用戶.
當然,這個情況只發(fā)生在java里邊. .net是不會這樣的.
只要新建立一個用戶,再在權(quán)限那分配權(quán)限做好就行了.
參照(作者:佚名 文章來源:onegreen.net )
注:
部分作者在寫到用戶登錄時,"PASSWORD="就行了,本人在“=”后加空格,有錯,不能連接。
不能在jbuilder中啟動項目,因為jbuilder啟動web項目時是不會去讀你指定的tomcat中的server.xml的,這樣的話數(shù)據(jù)源就不可用了,如果我們不能在jbuilder中啟動項目,我門就不能在調(diào)試狀態(tài)下來運行了,這樣對我們來寫程序就沒有太大意義了(當然我們可以在外面啟動tomcat,采用遠程調(diào)試的方法,這樣即可以使用數(shù)據(jù)源,也可以調(diào)試修改程序,但這個有點殺雞用牛刀的意思,不推薦),實際上jbuilder在啟動web項目時它會在工程目錄下建立一個tomcat文件架,它會去讀conf下的server8080.xml文件(8080為你為tomcat設定的端口),所以我們要想在jbuilder中啟動數(shù)據(jù)源,必須要在該配置文件中加上數(shù)據(jù)源信息),具體的是將
運行工程,在你的主文件夾下的tomcat\conf有server8080.xml,工程停止會消失,在
server8080.xml中的一條注釋刪掉,(否則它仍然會是臨時文件,會被覆蓋的)在<host>結(jié)點中加上
<Resource name="jdbc/***" auth="Container"
type="javax.sql.DataSource" password="****"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
maxIdle="2"
maxWait="5000"
username="sa"
url="jdbc:microsoft:sqlserver://192.168.*.*:1433;DatabaseName=***"
maxActive="4"/>
注意這里<context>結(jié)點可用它自身的,不要修改,重啟項目,這時你就可以使用數(shù)據(jù)源了。之所以在jbuilder中啟動web項目有點麻煩,是它沒有把項目發(fā)布到tomcat的webapp下面去,而是把tomcat的一些東西拿過來了(相當于),象eclispe或idea就沒有這種問題了。
以上所說的配置數(shù)據(jù)源是在jbuilder2006 tomcat5.5.9下實驗的.參考http://www.blogjava.net/siliconchip/articles/78214.html
javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
[ ctx=new InitialContext();
Context envCtx = (Context) ctx.lookup("java:comp/env");
ds = (DataSource) ctx.lookup("jdbc/數(shù)據(jù)庫名");]
改為:[ds=(DataSource)ctx.lookup("java:comp/env/jdbc/數(shù)據(jù)庫名"]異常消失,不知有何不同?
Context envCtx = (Context) ctx.lookup("java:comp/env");改為
Context envCtx = (Context) envCtx.lookup("java:comp/env");異常消失.
在classpath這個環(huán)境變量里加入以下語句:
C:Program FilesMicrosoft SQL Server 2000 Driver for JDBClibmsbase.jar;
C:Program FilesMicrosoft SQL Server 2000 Driver for JDBClibmssqlserver.jar;
C:Program FilesMicrosoft SQL Server 2000 Driver for JDBClibmsutil.jar;
如果你的機子上正確配制了JDK的環(huán)境變量就應該有CLASSPATH這個環(huán)境變量,若沒有就新建一個。
(http://download.microsoft.com/download/4/1/d/41d3e9c0-64d1-451e-947b-7a4cba273b2d/setup.exe)
2.檢查1433端口是否打開:NETSTAT(DOS進入C:\WINDOWS\SYSTEM32下) NETSTAT -AN
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establis
hing socket.
出現(xiàn)上邊錯誤的主要原因是默認的數(shù)據(jù)庫服務器端口 1433沒有打開,無法直接連接 。
這時你在命令提示行中輸入命令:netstat –an 來查看有沒有tcp:0.0.0.0:1433,如果沒有那就肯定是因為數(shù)據(jù)庫服務器端口 1433端口沒開。這時你需要下載SQL_Serve20000的sp4補丁,下載安裝后會發(fā)現(xiàn),默認C盤下SQL2KSP4中setup.dat安裝(******* 很重要******),1433端口已經(jīng)打開了,再次執(zhí)行程序,順利執(zhí)行完畢。
(http://download.microsoft.com/download/9/b/f/9bff6646-2cdb-4069-ada0-548be9cb9338/SQL2000-KB884525-SP4-x86-CHS.EXE)
3 java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用戶 'xxx' 登錄失敗。原困是未設置SQL SERVER登錄認證模式為混合認證模式,因為SQL SERVER默認安裝后認證模式為WINDOWS認證模式,從而導致出錯。
解決方法:啟動SQLSERVER企業(yè)管理器,選擇要進行認證模式設置的服務器。右擊該服務器,在彈出菜單中選擇屬性,SQL SERVER將
彈出屬性對話框在屬性對話框中選擇安全性選項,在身份驗證處選擇“SQL Server和Windows”,然后確定。
4.1、打開Jbuilder,選擇Tools-->Configure-->Libraries。
.2、然后在左邊的列表框下選擇New,填入:Name:sql,Location:User Home,然后點擊Add,
加入目錄C:Program FilesMicrosoft SQL Server 2000 JDBClib,確定 。
.3、Project-->Prject Properties-->Paths-->Required Libraries-->Add
加入剛才添加的User Home/sql確定
.4、Enterprise-->Enterprise Setup-->Database Drivers-->Add,加入User Home/sql,
添加之后在列表框中顯示的是sql.config,確定,重新啟動JBuilder
.5、Tools-->Database
Pilot-->View-->Options-->Drivers-->Add
填入
Driver class:com.microsoft.jdbc.sqlserver.SQLServerDriver
Simple URL:microsoft:sqlserver://localhost:1433;DatabaseName=mybase
確定之后,Tools-->Database Pilot-->New的Driver里選擇
com.microsoft.jdbc.sqlserver.SQLServerDriver
在URL里填入:
microsoft:sqlserver://服務器Ip地址或主機名:1433;DatabaseName=數(shù)據(jù)庫名
點擊確定,雙擊或點擊+號輸入sql數(shù)據(jù)庫的用戶名和密碼,就完成了JB與sql的連接!
5.java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]對象名 ‘xxx' 無效
根本原因:
訪問數(shù)據(jù)庫的用戶有登錄權(quán)限,但無操作表的權(quán)限
解決辦法:
1. 在[企業(yè)控制臺]窗口–[樹]子窗口–[安全性]子樹–[登錄]項里將你使用的登陸用戶的默認數(shù)據(jù)庫設為你所使用的數(shù)據(jù)庫。
2. 在[企業(yè)控制臺]窗口–[樹]子窗口–[安全性]子樹–[登錄]項里新增一個登錄用戶(在其中選擇SQL Server 身份驗證、服務器角色和要訪問的數(shù)據(jù)庫),以后便可用些新增用戶訪問你勾選的數(shù)據(jù)庫了。
大家在用java連接ms sql時可能會這樣的問題
原因是sa用戶為系統(tǒng)用戶,它雖然能夠登陸數(shù)據(jù)庫,但是數(shù)據(jù)庫里邊的權(quán)限都是dbo的,所以,我們現(xiàn)在為這個數(shù)據(jù)庫重新建立一個用戶.
當然,這個情況只發(fā)生在java里邊. .net是不會這樣的.
只要新建立一個用戶,再在權(quán)限那分配權(quán)限做好就行了.
參照(作者:佚名 文章來源:onegreen.net )
注:
部分作者在寫到用戶登錄時,"PASSWORD="就行了,本人在“=”后加空格,有錯,不能連接。
不能在jbuilder中啟動項目,因為jbuilder啟動web項目時是不會去讀你指定的tomcat中的server.xml的,這樣的話數(shù)據(jù)源就不可用了,如果我們不能在jbuilder中啟動項目,我門就不能在調(diào)試狀態(tài)下來運行了,這樣對我們來寫程序就沒有太大意義了(當然我們可以在外面啟動tomcat,采用遠程調(diào)試的方法,這樣即可以使用數(shù)據(jù)源,也可以調(diào)試修改程序,但這個有點殺雞用牛刀的意思,不推薦),實際上jbuilder在啟動web項目時它會在工程目錄下建立一個tomcat文件架,它會去讀conf下的server8080.xml文件(8080為你為tomcat設定的端口),所以我們要想在jbuilder中啟動數(shù)據(jù)源,必須要在該配置文件中加上數(shù)據(jù)源信息),具體的是將
運行工程,在你的主文件夾下的tomcat\conf有server8080.xml,工程停止會消失,在
server8080.xml中的一條注釋刪掉,(否則它仍然會是臨時文件,會被覆蓋的)在<host>結(jié)點中加上
<Resource name="jdbc/***" auth="Container"
type="javax.sql.DataSource" password="****"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
maxIdle="2"
maxWait="5000"
username="sa"
url="jdbc:microsoft:sqlserver://192.168.*.*:1433;DatabaseName=***"
maxActive="4"/>
注意這里<context>結(jié)點可用它自身的,不要修改,重啟項目,這時你就可以使用數(shù)據(jù)源了。之所以在jbuilder中啟動web項目有點麻煩,是它沒有把項目發(fā)布到tomcat的webapp下面去,而是把tomcat的一些東西拿過來了(相當于),象eclispe或idea就沒有這種問題了。
以上所說的配置數(shù)據(jù)源是在jbuilder2006 tomcat5.5.9下實驗的.參考http://www.blogjava.net/siliconchip/articles/78214.html
javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
[ ctx=new InitialContext();
Context envCtx = (Context) ctx.lookup("java:comp/env");
ds = (DataSource) ctx.lookup("jdbc/數(shù)據(jù)庫名");]
改為:[ds=(DataSource)ctx.lookup("java:comp/env/jdbc/數(shù)據(jù)庫名"]異常消失,不知有何不同?
Context envCtx = (Context) ctx.lookup("java:comp/env");改為
Context envCtx = (Context) envCtx.lookup("java:comp/env");異常消失.
您可能感興趣的文章:
- JBuilderX+SQL Server開發(fā)hibernate
- asp.net Reporting Service在Web Application中的應用
- mysqlreport顯示Com_中change_db占用比例高的問題的解決方法
- PHP函數(shù)之error_reporting(E_ALL ^ E_NOTICE)詳細說明
- PHP中error_reporting()函數(shù)的用法(修改PHP屏蔽錯誤)
- SQL Server 2008+ Reporting Services (SSRS)使用USER登錄問題
- SqlCommandBuilder如何實現(xiàn)批量更新
- SqlCommandBuilder類批量更新excel或者CSV數(shù)據(jù)的方法
- SQL Report Builder 報表里面的常見問題分析
相關文章
Java Socket實現(xiàn)傳輸壓縮對象的方法示例
這篇文章主要介紹了Java Socket實現(xiàn)傳輸壓縮對象的方法,結(jié)合具體實例形式分析了java socket針對數(shù)據(jù)的壓縮、傳輸、接收、解壓縮等操作相關實現(xiàn)技巧,需要的朋友可以參考下2017-06-06