Java 为什么会出现错误;未初始化的常量驱动程序管理器“;是否在以前运行的代码中发生?
我正在使用jruby,并通过db2jcc4.jar文件调用DB2/BIGSQL数据库。我将插入和选择连接得非常好,然后突然出现了错误“uninitialized constant DriverManager” 文件db2jcc4.jar是可读的,并且具有正确的权限。我甚至回到了以前的工作,早期版本的代码,我得到了相同的错误。唯一值得注意的变化是服务器已重新启动Java 为什么会出现错误;未初始化的常量驱动程序管理器“;是否在以前运行的代码中发生?,java,ruby,jdbc,driver,jruby,Java,Ruby,Jdbc,Driver,Jruby,我正在使用jruby,并通过db2jcc4.jar文件调用DB2/BIGSQL数据库。我将插入和选择连接得非常好,然后突然出现了错误“uninitialized constant DriverManager” 文件db2jcc4.jar是可读的,并且具有正确的权限。我甚至回到了以前的工作,早期版本的代码,我得到了相同的错误。唯一值得注意的变化是服务器已重新启动 require 'java' java_import 'com.ibm.db2.jcc.DB2Driver' java_import
require 'java'
java_import 'com.ibm.db2.jcc.DB2Driver'
java_import 'java.util.Properties'
url = "jdbc:db2://SERVER-REMOVED:PORT_REMOVED/BIGSQL"
output, rset, stmt, conn = nil
begin
properties = java.util.Properties.new
properties['user'] = 'USER REMOVED'
properties['password'] = 'PASSWORD REMOVED'
# Load driver class
driver = DB2Driver.new
DriverManager.registerDriver driver #this comes out to nil
regDrivers = DriverManager.getDrivers
conn = DriverManager.get_connection url, properties
...
知道发生了什么吗?您可能需要导入DriverManager类
java_import 'java.sql.DriverManager'
当然,DavidFlorenz的答案正确地说明了如何解决您的问题,但要回答您的问题,为什么会收到这样的错误消息:Ruby中的常量是以大写字母开头的标识符。在您想要运行
DriverManager.registerDriver
时,Ruby看到常量DriverManager
,显然还没有看到该常量的定义。谢谢!这太奇怪了,它在没有这行代码的情况下正常工作了两天,然后就停止了工作。