现在的位置: 首页 > 综合 > 正文

Android之SQLite学习

2013年01月22日 ⁄ 综合 ⁄ 共 2659字 ⁄ 字号 评论关闭

我们在使用SQLite的时候,一般都是直接封装一个SQLiteOpenHelper类,然后对类进行操作,所以这里我主要讲一下如何使用SQLiteOpenHelper。

package com.android.liu.sqlite;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class MyDataBaseHelper {
 
 public static final String TAG="MyDataBaseHelper";
 
 public static final String KEY_ID="_id";
 
 public static final String KEY_USERNAME="username";
 
 public static final String KEY_SEX="sex";
 
 public static final String DB_NAME="user.db";
 
 public static final String DB_TABLE="userTbl";
 
 public static final int DB_VERSION=1;
 
 public static final String DB_CREATE= "CREATE TABLE "+ DB_TABLE+" ("+ KEY_ID+" INTEGER PRIMARY KEY,"+KEY_USERNAME+" TEXT"+KEY_SEX+" TEXT)";
 
 private Context mContext=null;
 
 private SQLiteDatabase mSQLiteDatabase=null;
 
 private DatabaseHelper mDatabaseHelper=null;
 
 private static class DatabaseHelper extends SQLiteOpenHelper{

  public DatabaseHelper(Context context) {
   super(context, DB_NAME, null, DB_VERSION);
  }

  @Override
  public void onCreate(SQLiteDatabase db) {
   db.execSQL(DB_CREATE);
  }

  @Override
  public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
   db.execSQL("DROP DB_TABLE IF EXISTS NOTES");
   onCreate(db);
  }};

  public MyDataBaseHelper(Context context)
  {
   mContext=context;
  }
  
  public void open() throws SQLException
  {
   mDatabaseHelper=new DatabaseHelper(mContext);
   mSQLiteDatabase=mDatabaseHelper.getWritableDatabase();
  }
  
  public void close()
  {
   mDatabaseHelper.close();
  }
  
  /**插入一条数据*/
  public long insertData(int num,String data,String sex)
  {
   ContentValues initialValues=new ContentValues();
   initialValues.put(KEY_ID, num);
   initialValues.put(KEY_USERNAME, data);
   initialValues.put(KEY_SEX, sex);
   return mSQLiteDatabase.insert(DB_TABLE, KEY_ID, initialValues);
  }
  
  /**删除一条数据*/
  public boolean deleteData(long rowId)
  {
   return mSQLiteDatabase.delete(DB_TABLE, KEY_ID+"="+rowId,null)>0;
  }
  
  /**
   * 查询所有数据
   * */
  public Cursor fetchAllData()
  {
   return mSQLiteDatabase.query(DB_TABLE, new String[]{KEY_ID,KEY_USERNAME,KEY_SEX},null,null,null,null,null);
  }
  
  /**查询指定数据*/
  
  public Cursor fetchData(long rowId) throws SQLException
  {
   Cursor mCursor=mSQLiteDatabase.query(true, DB_TABLE, new String[]{KEY_ID,KEY_USERNAME,KEY_SEX}, KEY_ID+"="+rowId,null,null,null,null,null);
   if(mCursor!=null)
   {
    mCursor.moveToFirst();
   }
   
   return mCursor;
  }
  
  /**
   * 更新一条数据*/
  public boolean updateData(long rowId,String username,String sex)
  {
   ContentValues args=new ContentValues();
   args.put(KEY_USERNAME, username);
   args.put(KEY_SEX, sex);
   return mSQLiteDatabase.update(DB_TABLE, args, KEY_ID+"="+rowId, null)>0;
  }
    
}

抱歉!评论已关闭.