我们在使用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;
}

}

更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. python起点网月票榜字体反爬案例
  3. android通过php连接mysql数据库!!!!
  4. Android中SharedPreferences的基本使用
  5. Android接收jsp中动态生成的xml或json数据。
  6. Android中的Bundle类
  7. android SQLite操作
  8. 在Android中把SQLite的数据库文件存储在SD卡中【转】
  9. Android(安卓)Bundle类

随机推荐

  1. android 动态修改menu item的内容title
  2. Windows 10下安装配置Android(安卓)Studi
  3. Android之Retrofit2.0 处理返回json报文
  4. Android电子书翻页效果实现
  5. android之浮动title
  6. Android(安卓)开发资料汇总
  7. Android中遇到的一切BUG(到目前为止,这是
  8. Android开源图表库XCL-Charts版本号公布
  9. android本地化和国际化
  10. Android(安卓)studio异常记录