6-2 データベース 1.SQLite SQLを単純化した SQLite を使ってデータベースを操作 表「fruit」 id 0 1 2 3 4 name りんご オレンジ なし ぶどう 柿 price 150 200 200 300 100 表の作成・削除 データ操作 表の作成 列の追加 表の削除 SQL文 CREATE TABLE 表名(列名 型,…) ALTER TABLE 表名 ADD 列名 型,…) DROP TABLE 表名 データの追加・更新・削除 データ操作 データ追加 データ更新 データ削除 SQL文 INSERT INTO 表名 VALUES(値,値,…) UPDATE 表名 SET 列名=値 WHERE 条件 DELETE FROM 表名 WHERE 条件 プログラム例(その1) package jp.eclipse; import android.app.*; import android.database.*; import android.database.sqlite.*; import android.os.*; import android.widget.*; public class DbCreateActivity extends Activity { ListView listV; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout LL= new LinearLayout(this); LL.setOrientation(LinearLayout.HORIZONTAL); setContentView(LL); listV=new ListView(this); String dbName="data/data/"+getPackageName()+"/sample.db"; プログラム例(その2) // Data Base Create SQLiteDatabase db= SQLiteDatabase.openOrCreateDatabase(dbName,null); String Q0="DROP TABLE IF EXISTS fruit"; String Q1="CREATE TABLE fruit"+ "(id INTEGER PRIMARY KEY, name STRING, price INTEGER)"; String[] Q2={"INSERT INTO fruit(id, name, price) VALUES(0,'りんご',150)", "INSERT INTO fruit(id, name, price) VALUES(1,'オレンジ',200)", "INSERT INTO fruit(id, name, price) VALUES(2,'なし',200)", "INSERT INTO fruit(id, name, price) VALUES(3,'ぶどう',300)", "INSERT INTO fruit(id, name, price) VALUES(4,'柿',100)"}; String Q3="SELECT * FROM fruit"; db.execSQL(Q0); db.execSQL(Q1); for(int i=0;i<Q2.length;i++) db.execSQL(Q2[i]); Cursor cr = db.rawQuery(Q3, null); startManagingCursor(cr); ArrayAdapter<String> ad =new ArrayAdapter<String> (this, android.R.layout.simple_list_item_1); プログラム例(その3) while(cr.moveToNext()) { int i = cr.getColumnIndex("id"); int n = cr.getColumnIndex("name"); int p = cr.getColumnIndex("price"); int id=cr.getInt(n); String name =cr.getString(n); int price=cr.getInt(p); String str = id + " : " + name + " = " + price + " 円"; ad.add(str); } listV.setAdapter(ad); LL.addView(listV); db.close(); } } リストとして表示 結果例 「adb.exe」が見つからないとのエラーで動かないとき… ①マイコンピュータを右クリックしてプロパティを開く。 ②「システムの詳細設定」を選択する。 ③「詳細設定」タブの「環境変数」を開く。 ④「システム環境変数」の中から「path」という項目を探して選択し,「編集」をク リック。 ⑤変数値の最後にAndroid SDK の「platform-tools」フォルダの場所を書き込む。た とえば,c:\androidsdk/platform-toolsにフォルダがあったら, “;c:\androidsdk/platform-tools” を追加する。パスの前にセミコロン(;)を入れることに注意する。 ⑥「OK」ボタンをクリックしてウィンドウを閉じる。 ⑦「アクセサリ」の「コマンドプロンプト」を起動して, >path[ENTER] とキーインすると,⑤でキーインしたパスが表示されることを確認する。 2.条件による検索e 【Q3の文字列を以下のように書き直す。 SELECT * FROM fruit WHERE price>=200 表「fruit」 id 0 1 2 3 4 name りんご オレンジ なし ぶどう 柿 price 150 200 200 300 100 3.名前による検索 【Q3の文字列を以下のように書き直す。 SELECT * FROM fruit WHERE name=‘なし’ 表「fruit」 id 0 1 2 3 4 name りんご オレンジ なし ぶどう 柿 price 150 200 200 300 100 4.データの一部で検索 【Q3の文字列を以下のように書き直す。 SELECT * FROM fruit WHERE name=‘%ど%’ 表「fruit」 id 0 1 2 3 4 name りんご オレンジ なし ぶどう 柿 price 150 200 200 300 100 5.値の順に並べる 【Q3の文字列を以下のように書き直す。 SELECT * FROM fruit ORDER BY price 表「fruit」 id 0 1 2 3 4 name りんご オレンジ なし ぶどう 柿 price 150 200 200 300 100 6.値の大きい順に並べる 【Q3の文字列を以下のように書き直す。 SELECT * FROM fruit ORDER BY price DESC 表「fruit」 id 0 1 2 3 4 name りんご オレンジ なし ぶどう 柿 price 150 200 200 300 100
© Copyright 2024 ExpyDoc