程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> jbuilder2006連接sqlserver2000的方法

jbuilder2006連接sqlserver2000的方法

編輯:JAVA編程入門知識
1.其中包括下載JDBC FRO Microsft SQL_Server2000的驅動程序(在微軟官方網站下的,是sp3版的,這裡就不寫具體地址了,網上挺多的,但注意版本,我下的是sp3)。下載後發現是EXE 文件,雙擊安裝。默認安裝目錄:C:Program FilesMicrosoft SQL Server 2000 Driver for JDBC,其中C:Program FilesMicrosoft SQL Server 2000 Driver for JDBClib目錄下的三個擴展名為.jar是我們要的驅動。然後配制環境變量:
在classpath這個環境變量裡加入以下語句:
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的環境變量就應該有CLASSPATH這個環境變量,若沒有就新建一個。
(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.
 出現上邊錯誤的主要原因是默認的數據庫服務器端口 1433沒有打開,無法直接連接 。
  這時你在命令提示行中輸入命令:netstat –an 來查看有沒有tcp:0.0.0.0:1433,如果沒有那就肯定是因為數據庫服務器端口 1433端口沒開。這時你需要下載SQL_Serve20000的sp4補丁,下載安裝後會發現,默認C盤下SQL2KSP4中setup.dat安裝(******* 很重要******),1433端口已經打開了,再次執行程序,順利執行完畢。
(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企業管理器,選擇要進行認證模式設置的服務器。右擊該服務器,在彈出菜單中選擇屬性,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=數據庫名
  點擊確定,雙擊或點擊+號輸入sql數據庫的用戶名和密碼,就完成了JB與sql的連接!
5.java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]對象名 ‘xxx' 無效
根本原因:
訪問數據庫的用戶有登錄權限,但無操作表的權限
解決辦法:
1. 在[企業控制台]窗口–[樹]子窗口–[安全性]子樹–[登錄]項裡將你使用的登陸用戶的默認數據庫設為你所使用的數據庫。
2. 在[企業控制台]窗口–[樹]子窗口–[安全性]子樹–[登錄]項裡新增一個登錄用戶(在其中選擇SQL Server 身份驗證、服務器角色和要訪問的數據庫),以後便可用些新增用戶訪問你勾選的數據庫了。
大家在用java連接ms sql時可能會這樣的問題
原因是sa用戶為系統用戶,它雖然能夠登陸數據庫,但是數據庫裡邊的權限都是dbo的,所以,我們現在為這個數據庫重新建立一個用戶.
當然,這個情況只發生在java裡邊. .net是不會這樣的.
只要新建立一個用戶,再在權限那分配權限做好就行了.
參照(作者:佚名 文章來源:onegreen.net )
注:
部分作者在寫到用戶登錄時,"PASSWORD="就行了,本人在“=”後加空格,有錯,不能連接。
不能在jbuilder中啟動項目,因為jbuilder啟動web項目時是不會去讀你指定的tomcat中的server.xml的,這樣的話數據源就不可用了,如果我們不能在jbuilder中啟動項目,我門就不能在調試狀態下來運行了,這樣對我們來寫程序就沒有太大意義了(當然我們可以在外面啟動tomcat,采用遠程調試的方法,這樣即可以使用數據源,也可以調試修改程序,但這個有點殺雞用牛刀的意思,不推薦),實際上jbuilder在啟動web項目時它會在工程目錄下建立一個tomcat文件架,它會去讀conf下的server8080.xml文件(8080為你為tomcat設定的端口),所以我們要想在jbuilder中啟動數據源,必須要在該配置文件中加上數據源信息),具體的是將
運行工程,在你的主文件夾下的tomcat\conf有server8080.xml,工程停止會消失,在
server8080.xml中的一條注釋刪掉,(否則它仍然會是臨時文件,會被覆蓋的)在<host>結點中加上
<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>結點可用它自身的,不要修改,重啟項目,這時你就可以使用數據源了。之所以在jbuilder中啟動web項目有點麻煩,是它沒有把項目發布到tomcat的webapp下面去,而是把tomcat的一些東西拿過來了(相當於),象eclispe或idea就沒有這種問題了。
以上所說的配置數據源是在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/數據庫名");]
改為:[ds=(DataSource)ctx.lookup("java:comp/env/jdbc/數據庫名"]異常消失,不知有何不同?
Context envCtx = (Context) ctx.lookup("java:comp/env");改為
Context envCtx = (Context) envCtx.lookup("java:comp/env");異常消失.
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved