Android內建SQLite功能,讓android App可以利用它儲存資料。
Android SDK提供的類別庫以簡化使用SQLite資料庫的操作,
使用時只需用到一些基本的SQL語法即可。
- 使用openOrCreateDataBase()建立資料庫
SQLiteDatabase db;
db = openOrCreateDatabase(db_name, Context.MODE_PRIVATE, null);
- 使用CREATE TABLE建立資料表
String createTable = "CREATE TABLE IF NOT EXISTS " + tb_name +
" (name VARCHAR(32), " + "phone VARCHAR(16), " + "email VARCHAR(64))";
- 用execSQL()方法執行"CREATE TABLE"敘述
SQLiteDatabase db = openOrCreateDatabase(...);
String createTable = "CREATE TABLE IF NOT EXISTS " + tb_name +
" (name VARCHAR(32), " + "phone VARCHAR(16), " + "email VARCHAR(64))";
db.execSQL(createTable);
- 用insert()方法及ContentValues物件新增資料
ContentValues cv = new ContentValues(3);
cv.put("name", name);
cv.put("phone", phone);
cv.put("email", email);
db.insert(tb_name, null, cv);
用以上內容試著建立一個資料庫
MainActivity.java
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
static final String db_name="testDB"; // 資料庫名稱
static final String tb_name="test"; // 資料表名稱
SQLiteDatabase db; //資料庫
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 開啟或建立資料庫
db = openOrCreateDatabase(db_name, Context.MODE_PRIVATE, null);
String createTable="CREATE TABLE IF NOT EXISTS " +
tb_name + // 資料表名稱
"(name VARCHAR(32), " + //姓名欄位
"phone VARCHAR(16), " + //電話欄位
"email VARCHAR(64))"; //Email欄位
db.execSQL(createTable); // 建立資料表
// 插入 2筆資料
addData("Flag Publishing Co.","02-23963257","service@flag.com.tw");
addData("PCDIY Magazine","02-23214335","service@pcdiy.com.tw");
TextView txv=(TextView)findViewById(R.id.txv);
txv.setText("資料庫檔路徑: "+db.getPath()+ "\n\n" + // 取得及顯示資料庫資訊
"資料庫分頁大小: "+db.getPageSize() + " Bytes\n\n" +
"資料庫大小上限: "+db.getMaximumSize() + " Bytes");
db.close(); // 關閉資料庫
}
private void addData(String name, String phone, String email) {
ContentValues cv=new ContentValues(3); // 建立含3個資料項目的物件
cv.put("name", name);
cv.put("phone", phone);
cv.put("email", email);
db.insert(tb_name, null, cv); // 將資料加到資料表
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
activity_main.xml
<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="com.example.hellosqlite.MainActivity" >
<TextView
android:id="@+id/txv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/hello_world"
android:textSize="22sp" />
</RelativeLayout>
文章標籤
全站熱搜
留言列表