欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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");异常消失.