Androidアプリで、SQLiteへデータの書き込みをします。
◆環境
OS |
Windows 7 Professional Service Pack 1 64bit |
eclipse |
4.2.2 |
Android |
4.4 |
Android端末 |
Nexus7 |
@eclipseで[File]-[New]-[Project]を選択します。
ANew Projectウィンドウが開いたら[Android]-[Android Application Project]を選択し「Next」ボタンを押します。
BNew Android Applicationウィンドウが開いたら「Aplication Name」に AndroidSQLiteTest と入力し「Next」ボタンを押します。
CConfigure Projectウィンドウが開いたらそのまま「Next」ボタンを押します。
DConfigure the attributes of the icon setウィンドウが開いたらそのまま「Next」ボタンを押します。
ECreate Activityウィンドウが開いたらそのまま「Next」ボタンを押します。
FBlank Activityウィンドウが開いたらそのまま「Finish」ボタンを押します。
編集
ボタンを追加します。
activity_main.xml にボタンを押したときに呼ばれる関数名を追記します。
android:onClick="button1_click"
activity_main.xml
|
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res
/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/textView1"
android:layout_below="@+id/textView1"
android:layout_marginTop="14dp"
android:onClick="button1_click"
android:text="Button" />
</RelativeLayout>
|
|
データベースの処理クラスを作成します。
SQLiteの処理には SQLiteOpenHelperクラスを使います。
データベースファイルの名前は SQLiteTestDB.db にしました。
プロジェクトを右クリックし[New]-[Class]を選択します。
Name は MyOpenHelperに、Superclass には SQLiteOpenHelper を指定しました。
MyOpenHelper.java
|
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
|
package com.example.androidsqlitetest;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class MyOpenHelper extends SQLiteOpenHelper
{
static final String DB_NAME = "SQLiteTestDB.db";
static final int DB_VER = 1;
static final String TBL_CREATE
= "CREATE TABLE myTbl "
+ "("
+ "uid INTEGER PRIMARY KEY AUTOINCREMENT"
+ ", data TEXT"
+ ");"
;
static final String TBL_DROP
= "DROP TABLE myTbl;";
public MyOpenHelper( Context c )
{
super( c, DB_NAME, null, DB_VER );
}
@Override
public void onCreate( SQLiteDatabase arg0 )
{
arg0.execSQL( TBL_CREATE );
}
@Override
public void onUpgrade( SQLiteDatabase arg0
, int arg1
, int arg2
)
{
arg0.execSQL( TBL_DROP );
onCreate( arg0 );
}
}
|
|
MainActivity.java にボタンを押されたらデータベースへ1レコード追加する処理を入れます。
MainActivity.java
|
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
|
package com.example.androidsqlitetest;
import android.os.Bundle;
import android.app.Activity;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import android.view.Menu;
import android.view.View;
public class MainActivity extends Activity
{
SQLiteDatabase mydb;
@Override
protected void onCreate( Bundle savedInstanceState )
{
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main );
MyOpenHelper hlpr
= new MyOpenHelper( getApplicationContext() );
mydb = hlpr.getWritableDatabase();
}
@Override
public boolean onCreateOptionsMenu( Menu menu )
{
getMenuInflater().inflate( R.menu.main, menu );
return true;
}
public void button1_click( View v )
{
ContentValues val = new ContentValues();
val.put( "data", "DATA" );
mydb.insert( "myTbl", null, val );
Log.d( "INFO", "insert OK!!" );
}
}
|
|
実行してボタンを押したところ、以下のログが出力されました。
試しに3回押してみました。
04-04 16:57:35.707: D/INFO(19550): insert OK!!
04-04 16:57:40.187: D/INFO(19550): insert OK!!
04-04 16:57:43.437: D/INFO(19550): insert OK!!
Exception も出ていないのでうまくったように見えます。
SQLiteデータベースは SQLiteの取得と内容確認 で確認しました。
▲ PageTop ■ Home
Copyright (C) 2013 ymlib.com