Java连接SQL SERVER 2000主要操作及可能遇到的问题

    这个学期开了数据库,用的是sql server 2000,因为前面都是在sql server的企业管理器里面写一些程序,也就不要用具体的程序设计语言来实现了。这段时间要搞数据库课程设计,要用一门确切的语言来做出一个完整的项 目,显然就需要用一门程序设计语言来实现了。想来想去,还是用java好了,一来可能会相对简化掉一些操作,二来又可以让自己有机会好好锻炼一下自己的 java水平。使用的IDE是Eclipse,在自己把数据库设计做完之后,要做的第一件事就是将Eclipse跟sql server 2000连接起来。弄了一下晚上,终于把这个问题解决了。(采用JDBC的方法)
    首先需要下一个SQL Server 2000 driver for JDBC,我用的是SQL Server 2000个人版,在其他地方弄了个sp4的补丁,但是安装的时候提示要先装那个什么Analysis,找来找去没弄清楚状况。然后考虑到我找到的SQL Server 2000 driver for JDBC是sp3的,如果sql server 2000的补丁装sp4可能会出什么问题,于是决定都用sp3的。SQL Server 2000的SP3的补丁在微软的官网有下,链接地址如下:http://www.microsoft.com/downloads/details.aspx?FamilyId=90DCD52C-0488-4E46-AFBF-ACACE5369FA3&displaylang=zh-cn   其中下载的地方有三个,我开始的时候没弄清楚,就随便下了个,结果安装的时候就出了问题,后面上网找了一下才弄清楚三个文件分别是对应三个版本的。 chs_sql2kdesksp3.exe是服务器版,chs_sql2ksp3.exe是个人版, chs_sql2kasp3.exe是企业版。根据自己安装的版本下载到合适的安装就可以了。不过听说对于某些windows xp sp2的系统也可以不装补丁就用,不过我没有成功过,jdbc装了个sp2的都没有成功,后面还是用的sp3才弄好。关于这些补丁的问题,判断是否可以用 最重要一个条件就是在执行程序的时候是否会出现这个提示:Error establishing socket 。如果出现这个错误通常就是SQL Server 2000的补丁没打。
    然后就是把SQL Server 2000 driver for JDBC安装后生成的三个jar文件加到classpath中,这三个分别是msbase.jar mssqlserver.jar msutil.jar 然后再要做的一件事就是要让我们常用的IDE Eclipse知道这三个文件。方法如下:打开window菜单的perferences...子菜单,选择java / build path / user librarise,点击 NEW 随便输入名字(最好跟jar包相同,好看点,呵呵~~~)点击 ADD JARS... 选择这三个JAR文件中对应的那个。然后就是把这些jar包加入新建的工程中,方法如下:右键单击项目 选择 perferences 选择java build path 点击ADD Library 选择USER Library选择刚才建的 Library OK就好了,也可以在新建项目的时候就选择加入。最好再把下面这个程序copy过去,执行,显示“Connection Successful!”。至此,在Eclipse中连接SQL Server 2000完成,安心地做其他的工作。
测试程序:

import java.sql.*;

public class TestDB
{
    public static void main(String[] args)
    {
        String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
        String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=pubs";
        String userName = "sa";
        String userPwd = "";
        Connection dbConn = null;
       
        try
        {
            Class.forName(driverName);
            dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
            System.out.println("Connection Successful!");
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

 

新发现一个问题:可以正常连接,但是执行查询等来对数据库进行操作时,提示“

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 ‘xxx’ 无效”


<!-- -->import  java.sql. * ;

public   class  TestDB
{
    
public   static   void  main(String[] args)
    {
        String driverName 
=   " com.microsoft.jdbc.sqlserver.SQLServerDriver " ;
        String dbURL 
=   " jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=pubs " ;
        String userName 
=   " sa " ;
        String userPwd 
=   "" ;
        Connection dbConn 
=   null ;
       
        
try
        {
            Class.forName(driverName);
            dbConn 
=  DriverManager.getConnection(dbURL, userName, userPwd);
            System.out.println(
" Connection Successful! " );
        }
        
catch  (Exception e)
        {
            e.printStackTrace();
        }
    }
}

根本原因:
访问数据库的用户有登录权限,但无操作表的权限。
sa用户为系统用户,它虽然能够登陆数据库,但是数据库里边的权限都是 dbo的。
解决办法:


1. 在[企业控制台]窗口–[树]子窗口–[安全性]子树–[登录]项里将你使用的登陆用户的默认数据库设为你所使用的数据库。

2. 在[企业控制台]窗口–[树]子窗口–[安全性]子树–[登录]项里新增一个登录用户(在其中选择SQL Server 身份验证、服务器角色和要访问的数据库),以后便可用些新增用户访问你勾选的数据库了。

 

你可能感兴趣的:(java,eclipse,sql,sql,jdbc,server)