需要访问Java中JRuby on Rails应用程序的Heroku Postgres DB

需要访问Java中JRuby on Rails应用程序的Heroku Postgres DB,java,postgresql,heroku,jruby,jrubyonrails,Java,Postgresql,Heroku,Jruby,Jrubyonrails,我需要在我的JRuby on Rails应用程序中访问Java中的Postgres DB。这是允许的吗。有人做过吗 那么,我可以通过jdbc与数据库建立一个单例连接并操作postgres数据库吗 如果是这样的话,请你给我指一些可能对我有帮助的资源/例子 我必须构建一个功能,其中Postgres DB记录需要使用Java API进行操作。是的,您可以使用Ruby中的Java API进行操作。很难给出确切的答案,因为我不知道你想做什么。但下面是一个创建连接并在伪JRuby中操纵数据库的方法示例 re

我需要在我的JRuby on Rails应用程序中访问Java中的Postgres DB。这是允许的吗。有人做过吗

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

如果是这样的话,请你给我指一些可能对我有帮助的资源/例子


我必须构建一个功能,其中Postgres DB记录需要使用Java API进行操作。

是的,您可以使用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

谢谢你的手指代码。我决定创建一个单独的API服务器,并在rails应用程序中调用这些API。它是模块化的,我真的不喜欢把api代码放在我的控制器中。