我在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?
答案 0 :(得分:1)
我认为从Android应用程序直接连接到数据库是个糟糕的主意。
如果你真的需要它,你可以通过一些http api从heroku应用程序中获取它。
但是最好通过你的ruby应用程序将HTTP API用于android app和db之间的所有交互。