2017-08-28 5 views
0

私のデータベースから値を取得したいのですが、ボタン(void ButtonClick)をクリックするとアプリケーションがクラッシュします。JDBCでDBに接続しようとするとアプリケーションがクラッシュする

public void ButtonClick() throws Exception { 
    getConnection(); 
} 

public Connection getConnection() throws Exception { 
    try { 
     String username = "*******"; 
     String password = "*******"; 
     String url = "jdbc:mysql://http://**.***.***.***:3306/UserDB"; 
     Class.forName("com.mysql.jdbc.Driver").newInstance(); 

     Connection conn = (Connection) DriverManager.getConnection(url,username,password); 
     Statement statement = (Statement) conn.createStatement(); 
     String query = "SELECT * FROM TABLE 'UserDB'"; 
     ResultSet result = statement.executeQuery(query); 
     while (result.next()) { 
      String name = result.getString("Username"); 
      int id = result.getInt("ID"); 
      int points = result.getInt("Points"); 
      Toast.makeText(this, name + " " + id + " " + points, Toast.LENGTH_SHORT).show(); 
     } 
     return conn; 
    } catch (Exception e) { 
     Toast.makeText(this, e.toString(), Toast.LENGTH_SHORT).show(); 
    } 
    return null; 
} 

助けを

おかげで(私は私のAVDが動作しないため、エラーだか分からない):私のコードです

+2

エラーは何ですか? –

+2

外部リンクを貼り付ける代わりにここにコードを追加してください。 –

+0

Alex Mamo、私は何がエラーか分かりません。私のAVDは動作しません。 –

答えて

1

Java 7からは、forName()メソッドを使用する必要はありません。この方法で新しいインスタンスを作成すると同時に、DriverManager.getConnection()を使用して接続を作成しようとしています。

これを解決するには、forName()メソッドを使用してドライバのインスタンス化を削除してください。

AndroidからネイティブにMySQLデータベースにアクセスすることはできませんのでご注意ください。実際にはJDBCを使用できるかもしれませんが、推奨されません。これを見てくださいpost

希望します。

+1

私はこの問題に直面しました。データベースアクセスのための推奨される方法は、明らかに、アプリケーションとデータベースの間にあるRESTfulなサービスです。 – failedProgrammer

関連する問題