sql server连接eclipse web程序时,驱动加载成功,但是连接不上数据库,怎么回事?
我用的jar包是sqljdbc41.jar包
错误代码如下:
加载驱动成功!
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter
at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2758)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2244)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:43)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2230)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1717)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1328)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:993)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:829)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1012)
at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
at test.main(test.java:24)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.DatatypeConverter
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
... 13 more
程序代码如下:
import java.sql.*;
public class test{
public static void main(String[] args) {
PreparedStatement ps = null;
Connection ct = null;
ResultSet rs = null;
String url = "jdbc:sqlserver://localhost:1433;databaseName=Museum";
String user="sa"; //超级管理员
String password="123456"; //密码
try {
//1.加载驱动
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
System.out.println("加载驱动成功!");
}catch(Exception e) {
e.printStackTrace();
System.out.println("加载驱动失败!");
}
try {
//2.连接
ct=DriverManager.getConnection( url,user,password);
System.out.println("连接数据库成功!");
}catch(Exception e) {
e.printStackTrace();
System.out.println("连接数据库失败!");
}
/* 尝试添加数据到数据库中 */
try {
//在连接对象的基础上创建会话对象
Statement stmt = ct.createStatement();
//写插入数据的SQL语句
String sql = "insert into t_user values('2','King','123')";
//执行插入数据的SQL语句,返回受影响的行数
int rs1 = stmt.executeUpdate(sql);
//关闭会话对象
stmt.close();
//关闭连接对象
ct.close();
/*
* 如果受影响的行数大于零,则插入数据成功,
* 返回ture;否则插入数据失败,返回false
*/
if(rs1>0) {
System.out.println("插入成功");
}
else {
System.out.println("插入失败");
}
}catch(SQLException ex) {
ex.printStackTrace();
System.out.println("失败");
}
}
}