在 Java Android 应用程序中获取 ruby 环境变量 DATABASE_URL
Getting ruby enviroment variable DATABASE_URL in Java Android Application
我在 heroku 中 Rails 应用程序并创建了数据库。当我使用 heroku config
时,我可以看到它是 url。我还有 Java android 应用程序,它有 2 个活动。我在那里创建数据库 class 正如文档所说:
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 android 应用程序中获取 DATABASE_URL
的正确方法是什么?或者我应该将数据库的 url 复制到 Java 变量中?
我认为从 Android 应用程序直接连接到数据库是个很糟糕的主意。
如果你真的需要它,你可以通过一些 http api.
从 heroku 应用程序中获取它
但最好使用 HTTP API 进行 android 应用程序和数据库之间的所有交互,通过您的 ruby 应用程序。
我在 heroku 中 Rails 应用程序并创建了数据库。当我使用 heroku config
时,我可以看到它是 url。我还有 Java android 应用程序,它有 2 个活动。我在那里创建数据库 class 正如文档所说:
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 android 应用程序中获取 DATABASE_URL
的正确方法是什么?或者我应该将数据库的 url 复制到 Java 变量中?
我认为从 Android 应用程序直接连接到数据库是个很糟糕的主意。
如果你真的需要它,你可以通过一些 http api.
从 heroku 应用程序中获取它但最好使用 HTTP API 进行 android 应用程序和数据库之间的所有交互,通过您的 ruby 应用程序。