【问题标题】:Using other version of JDBC driver使用其他版本的 JDBC 驱动程序
【发布时间】:2018-10-09 22:24:29
【问题描述】:

我在使用其他版本的 JDBC SQLite 时遇到问题,而不是 Java 中默认使用的版本。我已将 this driver 的依赖添加到 pom.xml 中,当我使用 DriverManager.getConnection("jdbc:sqlite:database.db"); 时,我无法使用此驱动程序中的任何特殊功能,因为已加载 java 默认功能。

我正在尝试使用下载的“jdbc:sqlite”驱动程序的较高版本。我已经使用 maven 将驱动程序的源代码导出到我的 intellij 项目中,但是当我使用 Class.forName("org.jdbc.sqlite"); (在我的项目中的位置)然后它不起作用并且 DriverManager 仍然使用具有较低版本的不同驱动程序。我需要更新版本才能使用 ON CONFLICT 功能。我的问题是我不知道如何在我的项目中使用我自己的“jdbc:sqlite”驱动来创建连接。

【问题讨论】:

  • Java 中没有默认的 JDBC 驱动程序(旧版本 Java 中的 JDBC-ODBC 桥除外,但它只侦听以jdbc:odbc: 为前缀的 JDBC url)。你的问题可能是另一个问题。请发布您的代码并更清楚地描述您的问题。
  • 感谢您的评论。我正在尝试使用下载的更高版本的"jdbc:sqlite" 驱动程序。我已经使用 maven 将驱动程序的源代码导出到我的 intellij 项目中,但是当我使用 Class.forName("org.jdbc.sqlite");(在我的项目中的位置)时它不起作用,DriverManager 仍然使用具有较低版本的不同驱动程序。我需要更大的版本才能使用ON CONFLICT 功能。我的问题是我不知道如何在我的项目中使用我自己的"jdbc:sqlite"驱动来创建Connection
  • 那么您可能在类路径中同时拥有旧版本和新版本的驱动程序。删除旧的。
  • 这个较旧的是在java环境中。我做不到。
  • Java 默认不包含 sqlite。如果有人将驱动放在JVM的(已弃用)lib/ext文件夹中,应该将其删除。这纯粹是部署或类路径配置问题。

标签: java sqlite jdbc bukkit


【解决方案1】:

Bukkit 包含旧版本的 sqlite 驱动程序。您应该使用 maven shade 插件(或gradle shadow plugin)将新的 sqlite 驱动程序捆绑到您的 JAR 中,并将其重命名为 JAR 内的新名称(例如通过在包的组名称前加上“.repackaged”。 )。

【讨论】:

  • 谢谢。就是这样:)
猜你喜欢
  • 2016-12-10
  • 2022-09-23
  • 2013-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-16
  • 1970-01-01
  • 2012-07-20
相关资源
最近更新 更多