用java连接数据库报错。。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java连接数据库报错。。相关的知识,希望对你有一定的参考价值。

public class DBUtil public static Connection getConnection() String username = "admin";//SQL server 的登录名 String password = "jgszuibang233";//登录名下的密码 String url="jdbc:sqlserver://localhost:1433;DatabaseName=test"; String driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; try Class.forName(driver);//加载驱动程序 Connection conn= DriverManager.getConnection(url, username, password); return conn; catch (ClassNotFoundException e) e.printStackTrace(); catch (SQLException e) e.printStackTrace(); return null; public static void main(String[] args) // TODO Auto-generated method stub Connection con = DBUtil.getConnection(); System.out.println(con.toString());我百度了,试了挺多方法了,还不行。报错:Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/DatatypeConverter at sqljdbc42/com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2874) at sqljdbc42/com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:2361) at sqljdbc42/com.microsoft.sqlserver.jdbc.SQLServerConnection.access$100(SQLServerConnection.java:44) at sqljdbc42/com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:2347) at sqljdbc42/com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:6276) at sqljdbc42/com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1794) at sqljdbc42/com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1405) at sqljdbc42/com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:1069) at sqljdbc42/com.microsoft.sqlserver.jdbc.SQLServerConnection.connectInternal(SQLServerConnection.java:905) at sqljdbc42/com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:452) at sqljdbc42/com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:1014) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:677) at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:228) at DBUtil.getConnection(DBUtil.java:62) at DBUtil.main(DBUtil.java:74)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:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ... 15 more

从错误信息来看,是缺少SQLServer的JDBC驱动包,可以通过如下方式解决:

1、如果是maven程序,在pom文件中加入sqlserver驱动

<dependency>

<groupId>com.microsoft.sqlserver</groupId>

<artifactId>mssql-jdbc</artifactId>

<version>7.3.1.jre12-preview</version>

<scope>test</scope>

</dependency>

2、如果不是maven程序,百度搜索jdbc sqlserver jar ,然后把下载的jar引入到程序中

追问

倒是成功连上了,后面这个报错也看下呗(老师给的程序o(╯□╰)o),这个大图是完整的

追答

DBUtil报空指针

追问

OK

参考技术A DatabaseName这个有问题,应该是databaseName,前面的d要小写

java连接Oracle数据库,报错软件包oracle.jdbc不存在,下了个ojdbc6_g.jar不知道怎么用,望高手指教。

您好,一般的java开发都是在myeclipse下进行的。如果在连接oracle数据库中,提示jdbc不存在,那么可以直接将我们的jar文件直接导入即可
方法如下:
在java项目下,点击右键--properties---java build path--选择 add external achievers ;最后,将你要的jar 包 选择进去--ok--apply 即可。
希望我的回答能帮到您。追问

你好,我用的eclipse,跟myeclipse的导入方法一样么?

追答

您好,eclipse是myeclipse的一个插件,他们的使用方法都是一样的。

参考技术A 你好,你要使用java连oracle,那你的机子上一定装oracle。如果装了的话,没有必要去另外下载jar包,因为oracle给你都准备好了,到你的安装目录下,找到Oracle->jdbc->lib,下面有很多jar包,你根据你oracle的版本选择对应的jar包就行了。追问

可是请问
我的机子上没装Oracle,是访问别人的机子上的数据库,那该怎么办啊?

追答

...你到他的机子上按照我说的去找个jar包拷过来吧。网上下的不一定能用,不一定和他机子上的oracle兼容。

本回答被提问者采纳
参考技术B 是用的myeclipse开发么?是的话点project,然后propertities,然后java build path里导入就可以了追问

你好,我用的eclipse,跟myeclipse的导入方法一样么?

追答

一样的,你试试,

以上是关于用java连接数据库报错。。的主要内容,如果未能解决你的问题,请参考以下文章

用java连接mysql数据库时总是报错:Duplicate entry '1' for key 1,是啥原因?

mysql数据库怎么链接报错

java连接Oracle数据库,报错软件包oracle.jdbc不存在,下了个ojdbc6_g.jar不知道怎么用,望高手指教。

c#用odbc连接mysql报错

用EF连接Oracle数据库,运行报错

kettle连接数据库报错 java.lang.ClassC astException: java.math.Biglnteger