LoginSignup
1
3

More than 3 years have passed since last update.

[Android] MySQLに接続する(未完)

Posted at

JDBCダウンロード

AndroidからDBに直接接続できないので、JDBCドライバが必要になる。
MySQLインストール時にしなかった方は、こちらのConnecter/Jというリンクからダウンロード・インストールできる。
https://dev.mysql.com/downloads/

C:\Program Files (x86)\MySQL\Connector J 8.0の階層にmysql-connector-java-8.0.18.jarがあるので、これをビルドパスに追加する。

ビルドパス設定

jarファイルをapp/libsの下に追加。
さらにbuild.gradleに以下を追加。

dependencies {
    compile files('libs/mysql-connector-java-8.0.18.jar)
}

その後、おそらく同期ボタンが出てくるので同期する。

・参考URL
https://qiita.com/icchi_h/items/8ce738ce8511ef69c799

パーミッション

ネットワークを使うのでパーミッションが必要。以下を追加。

<manifest>
    <uses-permission android:name="android.permission.INTERNET" />
</manifest>

MySQLへの接続プログラム

MainActivity.java

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        try {
            //データベースに接続
            Connection con = MySqlConnect.getConnection();
            //ステートメントオブジェクトを作成
            Statement stmt = (Statement) con.createStatement();

            //SQL
            String mySql = "select date from table;";
            ResultSet rs = stmt.executeQuery(mySql);

            while(rs.next()) {
                Toast.makeText(getApplicationContext(), rs.getString("date"), Toast.LENGTH_LONG).show();
            }

            //オブジェクトを解放
            rs.close();
            stmt.close();
            con.close();

        } catch (Exception e) {
        }

MySqlConnect.java

class MySqlConnect{
  static Connection getConnection() throws Exception {
    //JDBCドライバのロード
    Class.forName("com.mysql.jdbc.Driver");
    //各設定
    String url = "jdbc:mysql://ホスト名/db名";
    String user = "user_name";
    String pass = "password";
    //データベースに接続
    Connection con = DriverManager.getConnection(url,user,pass);
    return con;
  }
}

・参考URL
https://qiita.com/ks_513/items/0b286c4932a8e36c672e

困ったところ

現在以下のエラーが発生しており、未完状態である。
ClassLoader referenced unknown path
java.lang.UnsupportedOperationException

ビルドパスの設定、gradleファイルの見直しなど試してみたが突破できなかった。

感想

簡単にできると思っていたが、意外と時間がかかる。
様々なサイトを見たが、非同期処理についてはほとんど書かれていなかったので関係ないとみている。
しかしhttps://qiita.com/ks_513/items/0b286c4932a8e36c672e
の一番下に非同期処理したほうが良いといった旨の記述がされているので、試す価値はありそうだ。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3