我最近切换到intellij,但我发现很难连接到我的localDB.相同的代码适用于eclipse.此外,我已经添加了sqljdbc42.jar作为模块依赖项.
package com.enter;
import java.sql.*;
public class sqlConnect {
private String username, password, url;
public Connection conn;
public sqlConnect() {
username = "user=admin;";
password = "password=admin";
url = "jdbc:sqlserver://Bossman-PC\\sql2014TRAINING;databaseName=EnterDB;";
Connect();
}
public sqlConnect(String user, String pass) {
username = user;
password = pass;
url = "jdbc:sqlserver://Bossman-PC\\sql2014TRAINING;databaseName=EnterDB;";
Connect();
}
public void Connect() { //Loads sql driver and creates a connection object with local database
try {
Class.forName("com.microsoft.sqlserver.jdbc.sqlServerDriver");
String connectionUrl = url + username + password;
conn = DriverManager.getConnection(connectionUrl);
System.out.println("Connected.");
} catch(Exception e) {
e.printstacktrace();
}
}
public Connection getConnection() {
return conn;
}
}
出错:
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:678)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:252)
at com.enter.sqlConnect.Connect(sqlConnect.java:25)
at com.enter.sqlConnect.<init>(sqlConnect.java:12)
at com.enter.Login.makeConnection(Login.java:26)
at com.enter.Login.<init>(Login.java:16)
at com.enter.Execute.initLogin(Execute.java:14)
at com.enter.Execute.main(Execute.java:9)
Caused by: java.lang.classNotFoundException: javax.xml.bind.DatatypeConverter
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
at java.base/java.lang.classLoader.loadClass(ClassLoader.java:496)
... 19 more
Process finished with exit code 1
任何帮助将不胜感激.我也尝试过重载的DriverManager.getConnection(url,user,pass)方法和同样的错误.
解决方法:
正如微软在GitHub所述:
Currently none of our driver released Jars are compatible with JDK9.
您可以切换到使用Java 8 JDK,也可以将Microsoft的开发代码从他们的’JDBC4.3’分支合并到您的项目中,并将其与Java 9 JDK一起使用.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。