Android学习笔记_SQLite数据库存储

来源:互联网 发布:淘宝微淘视频怎么发布 编辑:程序博客网 时间:2024/05/02 04:18

亲,你知道吗?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    }}
0 0