java加载MySQL驱动成功但是连接数据库失败的原因

一、原因:

  1. mysql和jar包版本不对应!!!

    成功的环境配置:MYSQL8.0+JDK13+mysql-connector-java-8.0.22.jar 

    8.0版本的Mysql最好也用8.0.X版本jar包,我之前用的5.1.39jar包加载MySQL驱动成功但是连接数据库失败!!!)

  2.   连接的驱动地址为"com.mysql.cj.jdbc.Driver"

            Mysql和mysql-connector都为8.0以上的版本时,连接驱动就不要再用:com.mysql.jdbc.Driver了,要引用

    com.mysql.cj.jdbc.Driver!!!

  3. 建立连接时url的一些参数

            jdbc:mysql://localhost:3306/,这个东西后面跟的是数据库的名字,8.0.X以上的版本还需在数据库名后面加上这些东西 ?serverTimezone=GMT 时区,不然就会报错!!!

二、添加jar包的简便方法:

  1.  官网下载:https://dev.mysql.com/downloads/connector/j/
  2. 右键src新建lib文件夹
  3. Ctrl+C下载好的jar包,选中lib文件夹,Ctrl+V。
  4. 右键lib下的jar包------构建路径------添加到构建。 

 

 

我的妈呀,搞了我三四天,各种各样的方法都试了,降jdk,升SQLserver,各种各样的设置改动,全都没用,甚至我都想动系统版本了。 一直是出现这个异常:这个异常 java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 无效的字符串或缓冲区长度。 简直要绝望了,偶然看到了[jdk1.7 JDBC连接SQL Server2008](https://www.cnblogs.com/gnivor/p/4244965.html ""),试试看吧,第一步我已经做了,从第二步开始,将驱动下载复制到各自位置,然后运行测试程序,哈,还是有异常,不过异常变了,变成:Exception in thread "main" java.lang.UnsupportedClassVersionError: L10_1 : Unsupported major.minor version 51.0,变了好啊,变了就说明有效果啊,再查这个异常,感谢这个帖子[出现 java.lang.UnsupportedClassVersionError 错误的原因及解决方法](https://blog.csdn.net/qq_35246620/article/details/70161152 "")和[运行java程序的时候出现Exception in thread "main" java.lang.UnsupportedClassVersionError:](https://blog.csdn.net/qinkang1993/article/details/52749487 "") ,综合这两个帖子,将java的编译环境jdk和jre更换到相同的1.7版本,啊,奇迹出现了,终于得到想要的结果了 ![图片说明](https://img-ask.csdn.net/upload/201901/11/1547203744_700394.jpg) 感谢上面提及的帖子的作者,让我在学习中得到帮助,及希望我这个问题能帮助到遇到这种问题的网友们。 ---------------------------------------------------------------------------- - - - - - - - - - - 电脑系统是win7 64位家庭旗舰版的 在sql server2005中建立名为shuihu的库,写了renwu表,在数据源(ODBC)里SQL Server ODBC 数据源测试 中是测试成功的,但在myeclipse里运行简单的测试程序就出错了 ![图片说明](https://img-ask.csdn.net/upload/201901/10/1547131042_417088.jpg) ![图片说明](https://img-ask.csdn.net/upload/201901/11/1547182200_715425.jpg) ``` 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“”以启用“都改为”是“,不过还是没用。 实在是没有办法了,请大神帮忙指导一下。
©️2020 CSDN 皮肤主题: 黑客帝国 设计师:上身试试 返回首页