gpt4 book ai didi

mysql - OSGI (Eclipse IDE) 中的 JDBC 驱动程序

转载 作者:行者123 更新时间:2023-11-29 07:10:29 26 4
gpt4 key购买 nike

我在让我的 OSGI 程序识别/使用 mysql jdbc 驱动程序时遇到了一些问题。

我有一个包,专门用于将数据输入 mysql 数据库。我复制了与测试程序(非 OSGI)中相同的所有方法。我无法使用 DriverManager.getConnection() 创建连接。

我已将驱动程序添加到类路径并尝试了该站点上的所有解决方案,例如使用 Class.forName()。可能我在 forName() 中输入了错误的字符串 arg。

public void createConn(String URL, String DBName, String username, String password){

try {
Class.forName("mysql-connector-java-5.1.14-bin.jar");
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
}
try {
conn = DriverManager.getConnection(URL + DBName,username,password);
System.out.println("Connection Created");
stmt = conn.createStatement();
System.out.println("Statement Created");
//data = new ApplianceData();

//flag = true;
//this.writeThread = new Thread();
//writeThread.start();

} catch (SQLException e) {
System.err.println(e.getMessage());
}
}
  • 谁能告诉我他们在 Class.forName(); 中使用的参数

  • 有没有人解决过这个问题或遇到过这个问题?


谢谢,这解决了 classNotFound 异常。现在我有一个错误,说明驱动程序不合适。我知道 OSGI 在驱动程序等方面存在一些问题。有人可以推荐一种方法来避免这种情况吗?

我已将 jdbc jar 放在 java 安装的 bin 文件夹中,以及 bundle 的 bin 文件夹中。

ClassLoader DBHCL = ClassLoader.getSystemClassLoader();
DBHCL.loadClass("com.mysql.jdbc.Driver");
Class.forName("com.mysql.jdbc.Driver", true, DBHCL).newInstance();
System.out.println("Class Loaded");
//DriverManager.getDriver("jdbc:mysql://localhost/timedb");
//System.out.println("Driver Gotten");
conn = DriverManager.getConnection(URL + DBName,username,password);
System.out.println("Connection Created");
stmt = conn.createStatement();
System.out.println("Statement Created");
connFlag = true;

控制台输出,错误:osgi> 开始 7数据库服务(MYSQL)启动加载类找不到适合 jdbc 的驱动程序:mysql://localhost/timedb线程“Thread-1”中的异常 INSERT INTO appliance1...

有没有人对这个问题有任何见解?

谢谢

最佳答案

Class.forName(String) 采用完全限定的类名,而不是 jar 文件。你应该使用类似的东西

Class.forName("com.mysql.jdbc.Driver");

关于mysql - OSGI (Eclipse IDE) 中的 JDBC 驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4822166/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com