今天在Java+Eclipse平台是试验MySQL数据库连接时出现了无法连接的异常,具体提示的错误如下:
Driver loaded //有这一句输出,应该是Driver找到了吧!
Exception in thread "main" java.lang.NoClassDefFoundError: java/sql/SQLClientInfoException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.mysql.jdbc.ConnectionImpl. <clinit>(ConnectionImpl.java:213)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:283)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
网络上也有相关的JSP连接MySQL数据库出现异常的情况,大概的错误如下所示:
javax.servlet.ServletException: java/sql/SQLClientInfoException
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:673)
org.apache.jsp.sss_jsp._jspService(sss_jsp.java:128)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
写的数据库连接源代码类似:
public static void main(String[] args) {
Connection con;
try {
Class.forName("com.mysql.jdbc.Driver"); // 方式1
// Class.forName("com.mysql.jdbc.Driver").newInstance();//方式2
// Class.forName("org.gjt.mm.mysql.Driver");//方式3:为了兼容旧的MySQL
// Class.forName("org.gjt.mm.mysql.Driver").newInstance();//方式4:为了兼容旧的MySQL
// DriverManager.registerDriver(new com.mysql.jdbc.Driver());//方式1
// DriverManager.registerDriver(new org.gjt.mm.mysql.Driver());//方式2
System.out.println("-->MySQL数据库驱动加载成功!");// 测试到哪里出现异常!
String dbUrl = "jdbc:mysql://localhost:3306/testdb";
// String dbUrl = "jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=GB2312";
String dbUser = "root"; // 用户名
String dbPwd = "root123"; // 密码
con = java.sql.DriverManager.getConnection(dbUrl, dbUser, dbPwd);// 建立数据库连接
// String dbUrl="jdbc:mysql://localhost:3306/mysql?user=root&password=root123";
// // String
// dbUrl="jdbc:mysql://localhost:3306/mysql?user=root&password=root123&useUnicode=true&characterEncoding=gb2312";
// con = DriverManager.getConnection(dbUrl);
System.out.println("已经成功连接上MySQL数据库'testdb'......\n"
+ con.toString());
} catch (ClassNotFoundException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
} catch (SQLException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
}
}
我使用的MySQL数据库驱动包为:mysql-connector-java-5.1.5-bin.jar,JDK的版本为:“java version "1.6.0-rc-b66"”。
错误解决的思路是:根据错误提示的找不到类“java/sql/SQLClientInfoException”信息,首先确认该JDK版本是否有SQLClientInfoException类(根据网络上的介绍,此类别要JDK6以上版本才有!)。虽然JDK6-API中是有该类文件,但不见得您机器上安装的JDK6就有该文件(JDK6以下的版本更不可能有该类别了),一个便捷的确认方式是到您机器上的JDK安装路径下,查看“\src.zip”源文件包中路径"java/sql/"下是否有源文件“SQLClientInfoException.java”如果没有,那则说明你装的JDK中没有该类文件(以本人机器上的JDK为例,虽然是1.6版本【“java version "1.6.0-rc-b66"”】,但就是没有该类文件),因此,在进行数据库连接时老是出现“java/sql/SQLClientInfoException”相关的异常!我拷贝一个较高版本的“%JAVA_HOME%/jrelib/rt.jar”文件(含有"java/sql/SQLClientInfoException"类文件的JDK版本!)替换了本机上的相应文件,再执行程序,就都没问题,成功了!
分享到:
相关推荐
本文将对MySQL数据库、SQL Server数据库、Oracle数据库以及使用JTDS驱动的SQL Server数据库进行深入探讨。 #### MySQL数据库驱动 MySQL是全球广泛使用的开源关系型数据库系统之一。为了使Java应用程序能够连接到...
Jsp JDBC连接MsSQL/MYSQL/Oracle各种数据库代码集,采用多种方式连接各种常用的数据库: 1.连接ACCESS http://127.0.0.1:8080/Access/access.jsp 2.连接SQL Server2000 ...
#### MySQL数据库连接 MySQL是最流行的开源关系型数据库之一。在Java中连接MySQL数据库通常采用JDBC技术。以下是一种常见的连接方式: ```java String driver = "com.mysql.jdbc.Driver"; // 驱动程序 String url ...
在文件列表中的`driver_lib`可能包含了这三种数据库对应的JDBC驱动库,它们是Java应用程序与数据库连接所必需的。在Java项目中,这些驱动库通常会被打包到项目的类路径(classpath)中,以便程序运行时能够正确地...
JSP通过JDBC驱动各种数据库方法本程序采用多种方式连接各种常用的数据库:1.连接ACCESS http://127.0.0.1:8080/Access/access.jsp2.连接SQL Server2000 ...
不直接把数据库连接信息写在程序里,而是单独使用一个properties(也就是mysql.ini)文件,来保存数据库连接信息另外,连接数据库和向数据库添加数据操作可以进行方法封装。 在目录创建配置文件: info.properties...
MySQL数据库驱动程序是Java应用程序与MySQL数据库之间通信的桥梁,主要功能是提供API接口,使得开发者可以使用Java语言编写程序来执行SQL语句,进行数据的读取、写入和其他数据库操作。`mysql-connector-java-6.0.5....
【项目案例】-java小区门户网站运行环境:jdk1.5数据库:mysql5服务器:tomcat5.0.28以上mysql数据库脚本:jspsqwl.sql采用jdbc数据源连接方式,数据库用户名:root 密码:123将"运行文件"文件夹下的目录放在tomcat下...
1.实现EFcore连接本地Mysql数据库 2.最新版本的ASP.NET.CORE.Web API 3.实现dbfrist和code 。 4.博客链接:https://blog.csdn.net/EAyayaya/article/details/124048491 5. 不是MVC方式 6.Entity Framework Core ...
mysql数据库脚本:jspsqwl.sql 采用jdbc数据源连接方式,数据库用户名:root 密码:123 将"运行文件"文件夹下的目录放在tomcat下的webapps文件夹下 启动数据库,启动tomcat服务器 在IE中输入:...
MySQL是世界上最受欢迎的开源数据库系统之一,而MySQL Connector/J是MySQL官方提供的用于Java应用程序与MySQL数据库之间连接的...在实际开发中,根据项目需求,还可以利用JDBC连接池管理多个数据库连接,提高应用性能。
MySQL JDBC驱动,也被称为Connector/J,是MySQL官方提供的Java数据库连接器,它实现了Java的JDBC接口,使得Java应用程序能够无缝地连接到MySQL数据库。MySQL JDBC驱动分为两种类型:非类型4(Type 3)和类型4(Type ...
其中,conn 是数据库连接对象,'select * from table1' 是要执行的 SQL 语句。 接下来,可以使用 fetch 函数来获取查询结果: curs = fetch(curs) 最后,可以使用 data 属性来获取查询结果: cur = curs.data ...
`mysql-connector-java-5.1.45`是MySQL官方提供的Java数据库连接器,它使得Java应用程序能够连接到MySQL服务器,执行SQL语句并处理结果。这个驱动包是Java开发者在开发过程中不可或缺的工具,特别是在Android平台上...
2. JDBC驱动:Java Database Connectivity (JDBC) 是Java平台的标准接口,用于连接各种数据库。对于MySQL,我们需要MySQL Connector/J,它是MySQL的官方JDBC驱动。 接下来,我们讲解如何在Java中建立数据库连接: 1...
JAVA数据库连接的主要作用是提供了一个统一的接口,使开发人员可以使用Java语言来访问不同的数据库管理系统,例如Oracle、DB2、SqlServer、Sybase、Informix、MySQL、PostgreSQL等。通过JDBC,可以实现数据库的连接...
文件`sqlConnect.java`和`mysqlConnect.java`可能包含了建立数据库连接的代码。以下是一个简单的示例: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; ...
JDBC是Java语言访问数据库的标准接口,提供了一系列的API用于建立、执行SQL语句以及管理数据库连接。JdbcUtils类通常会封装以下功能: 1. **数据库连接的获取和释放**:通过`Class.forName()`加载数据库驱动,然后...
1)驱动包:https://mvnrepository.com/artifact/mysql/mysql-connector-java(下载路径) 2)驱动类名:com.mysql.jdbc.Driver 3)JDBC的URL:jdbc:mysql://IP地址:端口号/数据库名字 注:端口号缺省为:...