谈jdbc连接sql server2000数据库

谈jdbc连接sql server2000数据库

前提:1.sql server 2000 任意版本    //本人用的是个人版

      2.sql server 2000 sp3升级包

          你可以在这里下载http://www.bossed.com.cn/download/detailcp.asp?id=74

      3.sql server 2000 jdbc 驱动  //这个就需要自己找了

安装目录下的lib文件夹下有三个.jar文件这是重要的文件他(msbase.jar ;mssqlserver.jar ;msutil.jar)

如果你是使用tomcat 或者resin的就要将这三个文件复制到他的lib路径下 ,我用的是resin我将这三个文件复制到D:/resin-2.1.8/lib目录下然后设置classpath环境变量(这个跟jdk设置path一样的)我的设置如下

classpath:     .;D:/resin-2.1.8/lib/msbase.jar;D:/resin-2.1.8/lib/mssqlserver.jar;D:/resin-2.1.8/lib/msutil.jar;D:/resin-2.1.8/lib/sqljdbc.jar

      4.jdk1.4                      //以下的例子是该版本

在以上条件满足的情况下,作以下事情

      1.建立新数据库名为:TESTDB ,并在其中建立一个名为test_student的表

          包括以下几列(Sno,Sname,Sage,Ssex,Sclass) 

      2.开始编写你自己的连接数据库的类(我这里是借鉴他人的版权不归我所有),你也可以用自己的方法

class Testj{

    public static void main(String args[])

    { 

        String RL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=TESTDB";

        String user ="king";//这里替换成你自已的数据库用户名

        String password = "sql";//这里替换成你自已的数据库用户密码

        String sqlStr = "select * from test_student";

        try{    //这里的异常处理语句是必需的.否则不能通过编译!   

            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");

            System.out.println( "类实例化成功!" );

            System.out.println("slkdjf");

            Connection con = DriverManager.getConnection(RL,user,password);

            System.out.println( "创建连接对像成功!" );

            Statement st = con.createStatement();

            System.out.println( "创建Statement成功!" );

            ResultSet rs = st.executeQuery( sqlStr );

            System.out.println( "操作数据表成功!" );

            System.out.println( "----------------!" );

            while(rs.next())

            {

                System.out.print(rs.getInt("Sno") + "    ");

                System.out.print(rs.getString("Sname") + "    ");

                System.out.print(rs.getInt("Sage") + "    ");

                System.out.print(rs.getString("Ssex") + "    ");

                System.out.println(rs.getString("Sclass"));

            }

            rs.close();

            st.close();

            con.close();

        }

        catch(Exception err){

            err.printStackTrace(System.out);

        }

    }

}

下面进行调试:

  javac Testj.java

  java Testj

  如果正确输出应该是:

  类实例化成功!

slkdjf

创建连接对像成功!

创建Statement成功!

操作数据表成功!

----------------!

2000    小刚               21    男    12       

2001    小黄               22    女    12       

2002    李娜               20    女    11       

2003    王芳               19    女    null

2004    黄明               22    男    11       

2005    梅兰               21    女    12       

2006    李玉               22    女    15       

2007    李平               32    女    12       

注意:这里有几点要说明

1.路径问题:

  你必须配置你的classpath路径否则他在编译时会抱错

  java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver

        at java.net.URLClassLoader$1.run(URLClassLoader.java:199)

        at java.security.AccessController.doPrivileged(Native Method)

        at java.net.URLClassLoader.findClass(URLClassLoader.java:187)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:289)

        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:235)

        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)

        at java.lang.Class.forName0(Native Method)

        at java.lang.Class.forName(Class.java:141)

        at Test.main(Test.java:11)

你的路径应该是这样配置:你可以在在安装jdbc驱动后看那里的帮助文档(是英文的);

//这里指在xp系统下

 classpath = ,;C:/Program Files/Microsoft SQL Server 2000 Driver for JDBC/lib/msbase.jar;

              C:/Program Files/Microsoft SQL Server 2000 Driver for JDBC/lib/mssqlserver.jar;

              C:/Program Files/Microsoft SQL Server 2000 Driver for JDBC/lib/msutil.jar;

  可千万不要写错哟!

 2.sp3补丁包问题:

    如果你在编译时出现下列问题 那么你需要下载并安装sp3补丁包

   java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establis

hing socket.

        at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)

        at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)

        at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)

        at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)

        at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)

        at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)

        at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)

        at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)

        at java.sql.DriverManager.getConnection(Unknown Source)

        at java.sql.DriverManager.getConnection(Unknown Source)

        at Test.main(Test.java:14)

3.权限问题   

   如果你出现类似这样的问题

   类实例化成功!

slkdjf

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用户 'king' 登录失败。

原因: 未与信任 SQL Server 连接相关联。

    at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)

    at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)

    at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)

    at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)

    at com.microsoft.jdbc.sqlserver.tds.TDSLoginRequest.processReplyToken(Unknown Source)

    at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)

    at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)

    at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)

    at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)

    at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)

    at java.sql.DriverManager.getConnection(DriverManager.java:512)

    at java.sql.DriverManager.getConnection(DriverManager.java:171)

    at Testj.main(Testj.java:14)

   

原困是未设置SQL SERVER登录认证模式为混合认证模式,因为SQL SERVER默认安装后认证模式为WINDOWS认证模式,从而导致出错。

解决方法:启动SQLSERVER企业管理器,选择要进行认证模式设置的服务器。右击该服务器,在弹出菜单中选择属性,SQL SERVER将

弹出属性对话框在属性对话框中选择安全性选项,在身份验证处选择“SQL Server和Windows”,然后确定。


4.如果出现sa不能登录,先检查数据库的名称和密码是否正确。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值