在Java Android应用程序中获取ruby环境变量DATABASE_URL

时间:2015-01-14 15:22:06

标签: java android ruby-on-rails ruby heroku

我在heroku中创建了Rails应用程序并创建了数据库。当我使用heroku config时,我可以看到它的网址。我还有Java android应用程序,它有2个活动。我在那里创建数据库类,文档说:

public class Database
{
    public Database()
    {
        System.out.println(System.getenv("DATABASE_URL"));
        try {
            Connection connection=getConnection();
        } catch (URISyntaxException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    private static Connection getConnection() throws URISyntaxException, SQLException {
        URI dbUri = new URI(System.getenv("DATABASE_URL"));

        String username = dbUri.getUserInfo().split(":")[0];
        String password = dbUri.getUserInfo().split(":")[1];
        String dbUrl = "jdbc:postgresql://" + dbUri.getHost() + ':' + dbUri.getPort() + dbUri.getPath();
        System.out.println(username);
        return DriverManager.getConnection(dbUrl, username, password);
    }
}

在我的Activity中创建数据库对象:

   public void onCreate(Bundle savedInstanceState) {
        Database database=new Database();
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

但我看到null而不是url。它是可预测的,因为它们是两个不同的应用程序。那么在我的Java安卓应用程序中获取DATABASE_URL的方法是什么?或者我应该只在Java变量中复制数据库的URL?

1 个答案:

答案 0 :(得分:1)

我认为从Android应用程序直接连接到数据库是个糟糕的主意。

如果你真的需要它,你可以通过一些http api从heroku应用程序中获取它。

但是最好通过你的ruby应用程序将HTTP API用于android app和db之间的所有交互。