亲,你知道吗?Android系统内置了数据库哟~
SQLite,一款轻量级关系数据库,运算速度快,占用资源少,特别适合在移动设备上使用。
SQLite支持标准SQL语法,遵循数据库ACID事务(原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability))。
SQLiteOpenHelper帮助类,让我们更方便的管理数据库。
抽象类,2个抽象方法:
onCreate(SQLiteDatabase db)
onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)。
话不多说,直接上代码。
package com.billjobs.cqdatabasetest;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class MainActivity extends Activity {
private MyDataBaseHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//CQ:第一次点击按钮时,检测当前程序中没有BookStore.db数据库
//因此创建该数据库并调用MyDataBaseHelper onCreate()方法,创建数据库和表
//再次点击时,因为数据库已经存在,不会再创建
dbHelper = new MyDataBaseHelper(this, "BookStore.db", null, 1);
Button createDataBase = (Button) findViewById(R.id.btn_create_database);
createDataBase.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
dbHelper.getWritableDatabase();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
package com.billjobs.cqdatabasetest;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;
public class MyDataBaseHelper extends SQLiteOpenHelper {
//将建表语句定义成字符串常量
public static final String CREATE_BOOK =
"create table book("
+ "id integer primary key autoincrement,"
+ "author text,"
+ "price real,"
+ "pages integer"
+ "name text)";
private Context mContext;
public MyDataBaseHelper(Context context, String name,
CursorFactory factory, int version) {
super(context, name, factory, version);
mContext = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CREATE_BOOK);
//CQ:数据库完成的同时创建Book表
Toast.makeText(mContext, "CQ:Create!", Toast.LENGTH_SHORT).show();
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
}
}