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
数据库连接成功!


我的连接数据库代码是.
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失败!");
}
}
}
本文记录了在IDEA中使用JDBC连接SQL Server时遇到的JDK版本问题。作者在Eclipse中能成功连接,但在IDEA中报错`java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter`。解决方案是降级到JDK8,并在IDEA中配置新的JDK版本。通过`Project Structure`添加并选择JDK8,解决了问题。

439

被折叠的 条评论
为什么被折叠?



