如何在Eclipse中部署JDBC Jar包?Derby数据库连接报错求助
解决JDBC连接报错及Jar包部署问题
一、核心问题修正:数据库类型不匹配
你明确要使用Derby数据库,但测试代码中写的是MySQL的JDBC URL(jdbc:mysql://localhost:3306/testing),这是驱动不匹配的根本原因,必须替换为Derby专属的URL格式。
二、Derby JDBC Jar包的正确部署方法
1. 获取对应驱动Jar
Derby的JDBC驱动分两种:
- 嵌入式模式:使用
derby.jar,Eclipse自带的Derby一般在[Eclipse安装目录]/plugins/org.apache.derby_[版本号]/lib路径下。 - 网络模式:使用
derbyclient.jar,同样在上述路径中。
2. Web项目的Jar部署规范
- 直接放入WEB-INF/lib:将对应的驱动Jar复制到项目的
WEB-INF/lib目录,Eclipse会自动将其加入类路径,无需手动配置Build Path。 - 清理冲突配置:如果之前通过Build Path添加过该Jar,右键项目 →
Build Path→Configure Build Path→Libraries,找到对应的Jar点击Remove,避免类路径冲突。
三、修正数据库连接代码
根据Derby的运行模式,选择对应代码:
嵌入式模式(无需单独启动Derby服务器)
嵌入式模式下,数据库文件会自动创建在项目目录或指定路径:
package testing; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class Check { public static void main(String[] args) { Connection dbConnection = null; try { // URL格式:jdbc:derby:[数据库名];create=true(数据库不存在则自动创建) String url = "jdbc:derby:testing;create=true"; // 嵌入式模式默认无需用户名密码,若已设置可添加参数 dbConnection = DriverManager.getConnection(url); if (dbConnection != null) { System.out.println("Successfully connected to Derby database"); } } catch (SQLException ex) { System.out.println("An error occurred while connecting Derby database"); ex.printStackTrace(); } finally { // 规范关闭连接 if (dbConnection != null) { try { dbConnection.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
网络模式(需先启动Derby网络服务器)
- 启动Derby服务器:Eclipse中通过
Window→Show View→Other→Derby→Derby Network Server打开视图,点击启动按钮。 - 对应连接代码:
package testing; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Properties; public class Check { public static void main(String[] args) { Connection dbConnection = null; try { // URL格式:jdbc:derby://localhost:1527/[数据库名];create=true String url = "jdbc:derby://localhost:1527/testing;create=true"; Properties info = new Properties(); info.put("user", "root"); info.put("password", "test"); dbConnection = DriverManager.getConnection(url, info); if (dbConnection != null) { System.out.println("Successfully connected to Derby database (network mode)"); } } catch (SQLException ex) { System.out.println("An error occurred while connecting Derby database"); ex.printStackTrace(); } finally { if (dbConnection != null) { try { dbConnection.close(); } catch (SQLException e) { e.printStackTrace(); } } } } }
四、"No suitable driver found"报错的额外排查点
- 确保驱动Jar版本与Derby版本一致,避免版本不兼容。
- 部署到Tomcat时,
WEB-INF/lib下的Jar会被自动打包进WAR包,无需额外复制到Tomcat的lib目录。 - 嵌入式模式下,若需指定数据库存储路径,可添加系统属性:
System.setProperty("derby.system.home", "指定路径");
内容的提问来源于stack exchange,提问作者user20658000
相关产品推荐
相关产品推荐

