【问题标题】:Need to access Heroku Postgres DB of a JRuby on Rails app in Java需要在 Java 中访问 JRuby on Rails 应用程序的 Heroku Postgres DB
【发布时间】:2015-07-12 15:52:16
【问题描述】:

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

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

如果是这样,请您指出一些可能对我有帮助的资源/示例。

我必须构建一个需要使用 Java API 操作 Postgres DB 记录的功能。

【问题讨论】:

    标签: java postgresql heroku jruby jrubyonrails


    【解决方案1】:

    是的,您可以使用 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 代码放在我的控制器中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 2011-03-18
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2012-06-22
    相关资源
    最近更新 更多