jbuilder2006连接sqlserver2000的方法
程序员文章站
2022-07-22 13:45:01
1.其中包括下载jdbc fro microsft sql_server2000的驱动程序(在微软官方网站下的,是sp3版的,这里就不写具体地址了,网上挺多的,但注意版本,...
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");异常消失.
在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");异常消失.
下一篇: 素菜排毒居然是真的,居然是这些素菜