ソフトエンジニアリング週5:アンドリュース接続のMySql

モバイル端末のための今週の学習コンテンツはYSQLデータベースに接続されています。

まず、実装方法:

1.インポートJREパケット接続は、データベースで使用しました

 

2.マスターファイルのレイアウトを追加します。権限<用途許可アンドロイド名=「android.permission.INTERNETあなた」/>ネットワークへのアクセスを取得するには

 新しいファイルのJavaデータベース接続を作成します3。

パッケージcom.example.myapplication;
 インポートandroid.util.Log、

インポートのjava.sql.Connection;
 インポートのjava.sql.DriverManager、
 インポートのjava.sql.PreparedStatement;
 インポートのjava.sql.ResultSet; 

インポートます。java.sql.SQLException;
 インポート; java.util.ArrayList内の
 インポートjava.util.Listに; 

/ ** 
 *データベースツール:データベースとの接続、データベースのデータの取得
 *関連動作は、データベースに書き込むことができる
 * / 
パブリック クラスDB { 

    プライベート 静的文字列=ドライバー"はcom.mysql.jdbc.Driver" ;
          // MySQLのドライブ

//    静的な文字列のURL =プライベート"JDBC:MySQLの:// localhostを:3306 / map_designer_test_db"; 

    プライベート 静的な文字列のユーザ= "ルート"; // ユーザ名

    プライベート 静的の文字列のパスワード= "zhangziyi1670"; // パスワード

    プライベート 静的の接続getConn(文字列DBNAME){ 

        接続の接続 = ヌル;
         試し{ 
            Class.forNameの(ドライバ); // 動的にロードされたクラス 
            文字列IP =「192.168.1.7」; // ネットワークに接続され、携帯電話やコンピュータはする必要がありますが、書き込みアドレス単価は、localhostを書き込むことができません同じです

            。// 指定されたデータベースへの接続を確立しようとするURL
            接続=したDriverManager.getConnection( "JDBCます。mysql://" + IP + ":3306 /" + DBNAME、
                    ユーザー、パスワード + "&useSslオプション=偽&serverTimezone = UTC&useSslオプション=偽&serverTimezone = UTC" ); 

        } キャッチ(例外e){ 
            e.printStackTrace(); 
        } 

        戻り接続。
    } 
    パブリック 静的リスト<CostBean> 検索(文字列時刻、文字領域){ 
       リスト <CostBean>リスト= 新規のArrayList <CostBean> (); 
        接続の接続 = getConn( "pachong" )。

        mysqlの簡単なクエリ。ここでは、レコードのテーブルに基づいてクエリにNAMEフィールドMD_CHARGERある 
            文字列のSQL = "SELECT * todaydata_copy1 UpdateDateからとprovinceid = = ??は" ;
 //             文字列のSQL = "SELECTからMD_CHARGER *"; 
            IF(接続=!ヌル) { // 接続がnullでないデータベース接続が確立され表し 
                たPreparedStatement PS = のConnection.prepareStatement(SQL);
                 IF(!PS = NULL ){
                     // SQLステートメント上記セット?値の名前 
                    ps.setString(1。 時間); 
                    ps.setString( 2 、エリア);
                     //SQLクエリを返す結果セットを実行 
                    するResultSet RS = ps.executeQuery();
                     IF(RS =!ヌル){
                         int型 COUNT = rs.getMetaData()たgetColumnCount();. 
                        Log.e( "DbUtils"、「列の合計数: "+ COUNT);
                         一方(がrs.next()){
                             // 注意:添字は1から始まる
                            ためINT I = 1; I <= COUNT; I ++ ){ 
                               文字列TIME1 = rs.getString("にupdateData」); 
                               文字列エリア1 = rs.getString( "provinceid");
                               ストリングconformednum = rs.getString( "confirmedNum" )。
                               CostBean costBean = 新しいCostBean(TIME1、AREA1、conformednum)。
                               list.add(costBean)。
                            } 
                        } 
                        connection.close(); 
                        ps.close(); 
                        戻り値の  リスト。
                    } { 

                        戻り ヌル
                    } 
                } {
                     戻り  ヌル
                } 
            } { 
                Log.e( "メッセージ"、 "CON未连接成功" )。
                リターン  ヌル
            } 
        } キャッチ(のSQLException E){ 
            e.printStackTrace(); 
            Log.e( "DBUtils"、 "异常:" + e.getMessage());
            リターン ヌル
        } 
    } 
}

第二に、スケジュール

時間 問題 リマーク
jsoupは、MySQLに保存されている、世界の流行情報をクロール 30分   知識の国家の株式前に流行を読んで、このステップは比較的簡単です
アンドロイドMySQLの接続 1日 初めての接続アンドロイドのmysql、およびIPアドレスによるアクセス、質問は本当に多くのあなたよりです ネットワーク上の情報を見つけることから、だけでなく、データベース・サーバの問題への接続を作成できませんでした遭遇
アンドロイド読んで、クエリ、表示情報の流行 2H NULLポインタ 私が悪かったのかわからない、ログの少しを使用しようとログLogCatは、エラーの原因を見つけます

第三に、要約

アクティビティが発生した1.の内容を取得するためのEditTextコントロールのように私のfindViewById方法で直接使用することはできません
次のような理由で解決策を見つけるためにインターネットを:
コントロールIDは、上で書いていない
クラスの制御変数を宣言するとき直接の割り当てはnullです。

         findViewByIdメソッドはで書かれた従来の方法setContentView

         現在の活動は、直接コントロールの別のアクティビティのレイアウトを取得することはできません(しかし、兄はなぜこの活動と、私はこのような理由のためであるように、それは問題で、私は、感じていないが、知らないことを教えてくれました)

最終的な解決のために:

 

 

 




おすすめ

転載: www.cnblogs.com/wangzhaojun1670/p/12547658.html