IDEA连接SQL server之JDK版本问题

本文记录了在IDEA中使用JDBC连接SQL Server时遇到的JDK版本问题。作者在Eclipse中能成功连接,但在IDEA中报错`java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter`。解决方案是降级到JDK8,并在IDEA中配置新的JDK版本。通过`Project Structure`添加并选择JDK8,解决了问题。

IDEA连接SQL server

由于老师授课是用Eclipse,本人用IDEA只能自己摸索,但个人更喜欢IDEA的界面。

这周的课程实验就是使用JDBC连接SQL server
再不断的百度和同学的帮助下,成功用Eclipse连接到数据库,但在IDEA相同的代码却无法连接,报错如下:

在这里插入图片描述

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter	at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:4098)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:3160)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:43)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:3123)
	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7505)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2445)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1981)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1628)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:1459)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:773)
	at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1168)
	at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677)
	at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228)
	at week10.Lab10_1.main(Lab10_1.java:16)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	... 14 more

Process finished with exit code 1

``

不断的报错,不断的百度,不断的尝试

我终于解决了!
Exception in thread “main” java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter 这句报错的意思是我的JDK版本过高,(但我相同JDK版本在Eclipse中却没有报错,到此时仍然未解 );

所以我就去了官网下载了JDK8,但由于已经下载过JDK14版本在安装JDK8的时候出现了问题(如下),而我又刚好在IDEA发现了可以直接下载。

在这里插入图片描述

且我又不会解决,也不想解决,怕把我的环境变量搞混乱了,但想解决可参考:[https://blog.csdn.net/sinat_36265222/article/details/79456275]

在IDEA中我们也可以不用通过官网下载,而通过“插件”,这个称呼可能不妥,那就叫强大的功能吧。

按快捷键:CTRL+ALT+SHIFT+S 打开 project Structure

在这里插入图片描述
先点SDKS,在点加号添加JDK(此时我已经下载了三个不同版本的JDK,名字可以在下载完之后自行更改)
Vendor:各个代理公司的JDK(说法可能不对,但里面有许多“公司”,且每个“公司”的可下载的JDK不同)

Version : 下载JDK的版本,每个“公司”提供的JDK版本可能不一样

Location:下载JDK的位置

下载完毕后就配置JDK8
在这里插入图片描述
点击Modules:图片中java_demo是我存放运行连接SQL Sever的程序,故我只给了这个Modules更改了JDK

更改之后 CTRL+ALT+F10

数据库连接成功!

在这里插入图片描述

参考 IDEA 中如何配置多个jdk版本
https://lixuekai.blog.csdn.net/article/details/52796892?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control

在这里插入图片描述

我的连接数据库代码是.

import java.sql.*;
public class Test {
    public static void main(String[] args) {
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            System.out.println("加载驱动成功!");
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("加载驱动失败!");
        }
        try {
            Connection dbConn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=computer_dept", "javase", "javase");
            System.out.println("连接数据库成功!");
        } catch (Exception e) {
            e.printStackTrace();
            System.out.print("连接SQL Server失败!");
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值