cjsxsw 2019-01-10 23:02 采纳率: 0%
浏览 1511

java连接sql server2005,驱动加载成功,数据库连接失败,应该怎么办?

我的妈呀,搞了我三四天,各种各样的方法都试了,降jdk,升SQLserver,各种各样的设置改动,全都没用,甚至我都想动系统版本了。
一直是出现这个异常:这个异常 java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 无效的字符串或缓冲区长度。
简直要绝望了,偶然看到了jdk1.7 JDBC连接SQL Server2008,试试看吧,第一步我已经做了,从第二步开始,将驱动下载复制到各自位置,然后运行测试程序,哈,还是有异常,不过异常变了,变成:Exception in thread "main" java.lang.UnsupportedClassVersionError: L10_1 : Unsupported major.minor version 51.0,变了好啊,变了就说明有效果啊,再查这个异常,感谢这个帖子出现 java.lang.UnsupportedClassVersionError 错误的原因及解决方法运行java程序的时候出现Exception in thread "main" java.lang.UnsupportedClassVersionError:
,综合这两个帖子,将java的编译环境jdk和jre更换到相同的1.7版本,啊,奇迹出现了,终于得到想要的结果了
图片说明

感谢上面提及的帖子的作者,让我在学习中得到帮助,及希望我这个问题能帮助到遇到这种问题的网友们。


电脑系统是win7 64位家庭旗舰版的
在sql server2005中建立名为shuihu的库,写了renwu表,在数据源(ODBC)里SQL Server ODBC 数据源测试 中是测试成功的,但在myeclipse里运行简单的测试程序就出错了

图片说明

图片说明

import java.sql.*;
public class L10_1 {
    public static void main(String[] args){
        Connection ct=null;
        Statement sm=null;
        try{
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
             System.out.println("加载驱动成功!");
        }catch(Exception e){
            e.printStackTrace();
        }
        try{            
            ct=DriverManager.getConnection("jdbc:odbc:sqlserver", "sa", "2010cjs");         
             System.out.println("数据库连接成功!");
        }catch(SQLException e){
            e.printStackTrace();
        }
        try{
            sm=ct.createStatement();
            ResultSet rs=sm.executeQuery("select * from bumen");
            while(rs.next())
            {
                int bianhao=rs.getInt(1);
                String mingcheng=rs.getString(2);
                String didian=rs.getString(3);
                System.out.println(bianhao+"   "+mingcheng+"    "+didian);
            }
        }catch(Exception e){}
        finally{
            try{
                if(sm!=null){
                    sm.close();
                }
                if(ct!=null){
                    ct.close();
                }
            }catch(Exception e2){}
        }
    }
}


在网上查了两天了,各种方法都试了,也没能找出问题。
先是jar7以后的不提供ODBC桥,而原先的是jar11,把jar11卸载了,换上jar7,但是没用。
将“sql server configuration manager”中“SQL Server 2005网络配置”下的“SQLSERVER 的协议”里四个协议都启用,其中”TCP/IP“属性里的”IP地址“里的”IPAII“端口改为1433,其他”IP“”以启用“都改为”是“,不过还是没用。
实在是没有办法了,请大神帮忙指导一下。

  • 写回答

2条回答 默认 最新

  • 可爱的小书包 2019-01-11 10:01
    关注

    你为什么要阻止错误日志的打印而改成你自己的错误打印呢?一般的话,看问题日志就知道是什么问题了,而且你这里抛异常,用的全是Exception,那么Exception的子类的用途何在呢?开发软件的过程中,越接近问题描述的异常,越方便解决问题,你现在弄到一个最高级的异常,要怎么定位具体的问题呢?

    评论

报告相同问题?

悬赏问题

  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗