java - JRuby OJDBC,没有错误,但插入不显示?

标签 java ruby jdbc oracle11g jruby

我一直在关注tutorial来自 Oracle,使用带有 Oracle 数据库和 JRuby 的 JDBC 驱动程序。我需要 JRuby 连接器类,并且我修改了它们的一些代码。我只想执行一个简单的插入语句并从我的脚本中执行它。一旦完成,我可能需要执行 10 多次。

我使用的是oracle数据库,11g。 CentOS 7.2 x64。

这是我正在执行的工作的代码:

def insert_row
insert_stmt = nil
begin
  conn = OracleConnection.create(@dbuser, @dbpass, @dburl)

  insert_sql = <<-EOH
INSERT INTO TESTTABLE2(COLUMN1)
VALUES('JRUBY')
  EOH
  puts insert_sql
  insert_stmt = conn.prepare_statement(insert_sql)
  insert_stmt.execute

rescue
  puts "\n** Error occured **\n"
  puts "Failed executing Oracle demo from JRuby ", $!, "\n"
ensure
  # We have to ensure everything is closed here.
  if (!insert_stmt.nil?)
    insert_stmt.close
  end
end
end

代码似乎成功完成,但实际上没有执行任何操作。我刚刚复制并粘贴了 jdbc_connector.rb 文件并需要它,我认为这就是您应该使用它的方式,因为它只是用于发布到数据库。

这些是我的设置: init = CSVParse.new("SYSTEM", "密码", "jdbc:oracle:thin:@...:1521:XE")

请帮忙。

最佳答案

如果您使用提供的链接中的示例代码,则代码中的某处会有 @conn.auto_commit = false,并且该示例显示了 conn.auto_commit = false 的使用。在 insert_stmt.execute 之后提交,因此这很可能是您需要做的。

简而言之,添加缺少的 conn.commit 调用。

关于java - JRuby OJDBC,没有错误,但插入不显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38816894/

相关文章:

java - 如何在 Spring 中运行 @PostConstruct 非阻塞?

ruby - 为什么我的 JSON 提要中的这个 Unicode/UTF-8 "En Dash"字符在我下载时会被损坏?

ruby - 可以强制转换为 String、Fixnum 或 Float 的对象?

ruby - 寻找一种可以在 ruby 中显示明天日期的方法

mysql - isValid() 调用永远不会在 MySQL JDBC 连接上返回

postgresql - 如何让 PostgreSQL DBLink 连接与 JDBC 一起工作?

java - 改进广度优先逻辑

java - 逐列打印二维数组

postgresql - PostgreSQL 中 INNER JOIN 查询出现“无主键”错误

java - 用于连接超时和打开连接数的 Netty channel 配置