2015-01-14 79 views
0

我在Heroku中創建了Rails應用程序並創建了數據庫。當我使用heroku config時,我可以看到它是網址。我也有Java Android應用程序,它有2個活動。我創建的數據庫類有作爲文檔說:在Java中獲取ruby環境變量DATABASE_URL Android應用程序

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); 
    } 
} 

而且在我的活動創建數據庫對象:

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

但我看到的空,而不是網址。那麼它是可預測的,因爲它們是兩種不同的應用程序。那麼在我的Java android應用程序中獲得DATABASE_URL的proprer方法是什麼?或者我應該將數據庫的url複製到Java變量中?

回答

1

我認爲從Android應用程序直接連接到數據庫是一個很壞的主意。

如果你真的需要它,你可以通過一些http api從heroku應用中獲取它。

但是,通過您的Ruby應用程序,最好使用HTTP API進行Android應用程序和數據庫之間的所有交互。

+0

那麼你可以教任何教程嗎? –

+0

其實它是軌道的基礎。 只需閱讀指南,http://guides.rubyonrails.org/ 如果要直接連接到數據庫,請創建控制器DbController#db_url。或者創建一些REST資源,指南有所有必要的信息。 –