一.android中使用什么數據庫?
SQLite是遵守ACID的關系數據庫管理系統,它包含在一個相對小的C程式庫中。它是D.RichardHipp建立的公有領域項目.SQLite 是一個軟件庫,實現了自給自足的、無服務器的、零配置的、事務性的 SQL 數據庫引擎。SQLite 是在世界上最廣泛部署的 SQL 數據庫引擎。SQLite 源代碼不受版權限制。
值得一提的是,android和ios使用的數據庫一樣,都是SQLite.
二.如何創建一個數據庫?
1.使用intelij idea創建一個andorid項目


2.創建如下工具類:
MyDBHelper.java
package com.amos.android_database; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; /** * Created by amosli on 14-6-10. */ public class MyDBHelper extends SQLiteOpenHelper{ /** * 創建數據庫的構造方法 * @param context 應用程序上下文 * name 數據庫的名字 * factory 查詢數據庫的游標工廠一般情況下用sdk默認的 * version 數據庫的版本一般大於0 */ public MyDBHelper(Context context) { super(context, "test.db", null, 4); } private String tag = "MyDBHelper.class"; /** * 在數據庫第一次創建時會執行 * @param db */ @Override public void onCreate(SQLiteDatabase db) { Log.d(tag,"onCreate....."); //創建一個數據庫 db.execSQL("create table person (personid integer primary key autoincrement ,name varchar(30) )"); } /** * 更新數據的時候調用的方法 * @param db * @param oldVersion * @param newVersion */ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { Log.d(tag,"onUpgrade*******"); //增加一列 db.execSQL("alter table person add phone varchar(13) null"); } }
MyActivity.java
package com.amos.android_database; import android.app.Activity; import android.os.Bundle; public class MyActivity extends Activity { /** * Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); MyDBHelper myDBHelper = new MyDBHelper(this); myDBHelper.getReadableDatabase(); myDBHelper.close(); } }
3.打開生成的test.db
1).下載安裝SQLiteStudio(SQLite的可視化工具)
下載地址:http://www.sqlitestudio.pl/
安裝:
chmod 777 sqlitestudio-2.1.5.bin ./sqlitestudio-2.1.5.bin
執行上面的linux命令,第一句是賦權限,第二句是打開工具
2)從avd中導出test.db

打開DDMS,從data/data/com.amos.andriod_database/databases下導出test.db
3).用sqlitestudio打開test.db
添加數據庫

選擇test.db

執行onCreate方法時創建的person表

執行onUpgrade方法更新語句的時候

本文源碼:https://github.com/amosli/android_basic
