本来不太想写这篇博客的,但是看到网上的关于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 RxJava:图文详解 变换操作符
  2. 解决 Android 中使用ListView和CheckBox批量操作时若干问题
  3. 快速开发框架Afinal的使用(数据库操作,HTTP请求,网络图片加载,控件绑
  4. Android开发小记--开发实用工具类--数据库操作类
  5. php实现post请求 接收android客户端json数据 存储数据库 并返回j
  6. Android之数据存储详解(二)之SQLite数据库存储数据
  7. Android 操作系统 获取Root权限 原理解析

随机推荐

  1. android微信摇一摇功能
  2. 也说Activity任务栈
  3. Android 如何让程序定时进行消息通知到通
  4. android倒计时封装(活动进入后台,倒计时依
  5. android 中添加Dialog
  6. Android中如何查看内存(下)
  7. Android有道词典开发
  8. Android手机开发:ImageView使用和从内存读
  9. Android中Log的输出
  10. Android(安卓)定时服务