需要在 Java 中的 Rails 应用程序上访问 JRuby 的 Heroku Postgres 数据库

Need to access Heroku Postgres DB of a JRuby on Rails app in Java

我需要在 Rails 应用程序的 JRuby 中访问 Java 中的 Postgres 数据库。这是allowed/done吗。有人做过吗?

那么我可以通过 jdbc 与数据库建立单例连接并操作 postgres 数据库吗?

如果是这样,请你指点一些可能对我有帮助的resources/examples。

我必须构建一个功能,其中需要使用 Java API.

操作 Postgres 数据库记录

是的,您可以使用 Ruby 中的 Java API 执行此操作。很难提供确切的答案,因为我不知道您要做什么。但这里有一个创建连接的方法示例,并以伪 JRuby

操作数据库
require 'java'

java_import java.net.URI
java_import java.sql.DriverManager

def do_database
  connection = get_connection

  stmt = connection.createStatement
  stmt.executeUpdate("CREATE TABLE IF NOT EXISTS ticks (tick timestamp)")
  stmt.executeUpdate("INSERT INTO ticks VALUES (now())")
  rs = stmt.executeQuery("SELECT tick FROM ticks")

  rs.next 
  begin
    puts "Read from DB: " + rs.getTimestamp("tick")
  end while rs.next

ensure
  connection.close if connection != nil
end

def get_connection
  dbUri = ENV["DATABASE_URL"]

  username = dbUri.getUserInfo.split(":")[0]
  password = dbUri.getUserInfo.split(":")[1]
  port = dbUri.getPort

  dbUrl = "jdbc:postgresql://#{dbUri.getHost}:#{port}#{dbUri.getPath}"

  DriverManager.getConnection(dbUrl, username, password)
end