本来不太想写这篇博客的,但是看到网上的关于android数据库操作的博文都讲得很详细,对于像我这样的新手入门了解SQLite的基本操作有一定难度,所以我参考了网上的一些博客文章,并自己亲自摸索了一遍,希望写出这么一篇博文来记录SQLite的最基本操作,同时也希望能够对android的新手们有些帮助。

参考博客:http://www.20864.com/201247/274.html

这里只是一个示范性的demo,并没实现什么具体功能,只实现了对数据库的增删查改操作。

以下是实现demo的步骤:

第一步,创建自己的SQL操作类 DBHelper

package com.example.SQLiterTest;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteDatabase.CursorFactory;import android.database.sqlite.SQLiteOpenHelper;import android.util.Log;/** * 可以通过SQLiteOpenHelper的以下两个方法来或得SQLiteDatabase的对象: * getReadableDatabase() 创建或者打开一个查询数据库 * getWritableDatabase() 创建或者打开一个可写数据库  */public class DBHelper extends SQLiteOpenHelper {    /**     * 构造函数,必须实现     * @param context 上下文路径     * @param name 数据库名称     * @param factory 可选游标工厂,通常为NULL     * @param version 当前数据库版本号     */    private SQLiteDatabase mDataBase = null;    private static final String USER_TABLE = "user";    public DBHelper(Context context, String name, CursorFactory factory,                    int version) {        super(context, name, factory, version);        mDataBase = this.getWritableDatabase();    }    //数据库第一次创建时会调用,一般在其中创建数据库表    @Override    public void onCreate(SQLiteDatabase db) {        //使用execSQL()方法执行SQL语句,如果没有异常,这个方法没有返回值        db.execSQL("create table user(id INTEGER PRIMARY KEY AUTOINCREMENT," +                "name varchar(20), address TEXT)");        Log.v("mytab","-->onCreate");    }    //当数据库需要修改的时候,Android系统会主动的调用这个方法。    @Override    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}    //打开数据库时的回调函数,一般不会用    @Override    public void onOpen(SQLiteDatabase db) {        super.onOpen(db);        Log.v("mytab","-->onOpen");    }    @Override    public synchronized void close() {        super.close();    }}

第二步,在Activity的onCreate函数中实现增删查改的功能。

package com.example.SQLiterTest;import android.app.Activity;import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.os.Bundle;import android.util.Log;public class MyActivity extends Activity {    /**     * Called when the activity is first created.     */    private SQLiteDatabase db;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        // 获取处理SQLiteOpenHelper的子类的SQLite的实例,如果只读,可以采用getReadableDatabase(),        // 这个例子我们奖通过SQLiteDatabase实例的操作,来进行对数据进行增删改查询,采用可写的方式。        db = new DBHelper(getApplicationContext(),"mydb",null,1).getWritableDatabase();        ContentValues cv = new ContentValues();        cv.put("name", "JackLi");        cv.put("address", "QingYuan");        //插入        db.insert("user",null,cv);        Log.v("mytab","-->have insert");        //更新        ContentValues cv2 = new ContentValues();        cv2.put("name","HaiXin");        db.update("user",cv2,"name=?",new String[]{"JackLi"});        Log.v("mytab","-->have updated");        //查询        String[] columns = {"name", "address"};        Cursor cursor = db.query("user",columns,"name = ?", new String[] {"HaiXin"},null,null,null);        while (cursor.moveToNext())        {            String myname = cursor.getString(cursor.getColumnIndex("name"));            Log.v("mytab","---->"+myname);        }        //删除        db.delete("user","name = ?",new String[]{"HaiXin"});        Log.v("mytab","-->have delete");    }    @Override    protected void onDestroy() {        super.onDestroy();        db.close();    }}

  

  总的来说整个过程只有两步,在第一次运行这个demo时,会创建一个名叫"mydb"的数据库和一个叫“user”的数据表。

运行程序后,在logcat中会显示以下一些信息:

05-19 08:08:30.864    1802-1802/com.example.SQLiterTest V/mytab﹕ -->onOpen05-19 08:08:30.872    1802-1802/com.example.SQLiterTest V/mytab﹕ -->have insert05-19 08:08:30.888    1802-1802/com.example.SQLiterTest V/mytab﹕ -->have updated05-19 08:08:30.888    1802-1802/com.example.SQLiterTest V/mytab﹕ ---->HaiXin05-19 08:08:30.900    1802-1802/com.example.SQLiterTest V/mytab﹕ -->have delete

  通过logcat中的信息可以很清楚的看到程序的执行过程。

更多相关文章

  1. Android(安卓)多个APK共享数据(Shared User ID)
  2. 做纯粹的 Android
  3. Android(安卓)应用界面设计
  4. 快速开发框架Afinal的使用(数据库操作,HTTP请求,网络图片加载,控件绑
  5. Android(安卓)onTouchEvent, onClick及onLongClick的调用机制
  6. Android(安卓)下使用 JSON 实现 HTTP 请求
  7. 解决 Android(安卓)中使用ListView和CheckBox批量操作时若干问题
  8. Android开发小记--开发实用工具类--数据库操作类
  9. Android(安卓)RxJava:图文详解 变换操作符

随机推荐

  1. Android(安卓)上,用普通的 am-linux-gcc
  2. Android(安卓)5.0+ 自定义普通按钮的ripp
  3. u3d与android通信1
  4. Android自动接听和挂断电话实现原理
  5. android与Web服务器交互时的cookie使用-
  6. Android(安卓)Developers:向其它应用发送
  7. android Paint和Color类介绍 使用示例
  8. Android(安卓)万能适配器 节省你的开发时
  9. Android(安卓)系统Handler用法简介
  10. android studio 试手