您的位置:首页 > 数据库

安卓入门--Sqlite安卓中数据库的增删查改

2016-05-27 00:23 423 查看

androidSqlite的增删查改

package com.qfeng.sqlite2;

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

import com.qfeng.sqlite.MyOpenhelper;

/**
*
* @author sKy°
* SqliteManager类的创建和使用
* 该类主要是封装了操作数据库的增 删 查 改方法 目的方便使用和提高效率
* 使用的时候直接实例化调用里面方法即可!
* @d2016-5-26
*/
public class SqliteManager {
private MyOpenhelper openhelper;

/**
* 1.设置带一个参数构造
* 定义SqliteManager的带参构造,传入Context用于调用
* 构造里面实例化该类意于被调用的时候就实例化MyOpenhelper
* 并设为全局变量后面方法都会用到(初始化类在上一篇详细介绍了该类就不说了)
* @param context
*/
public SqliteManager(Context context) {
openhelper = new MyOpenhelper(context);
}

/**
* 2.增
* db.insert(table, nullColumnHack, values);
* 第一个参数: table-->表名
* 第二个参数: nullColumnHack-->空列的默认值
* 第三个参数:values-->ContentValues类型的一个封装了列名称和列值的Map
* 清楚每个参数含义之后,写该方法就好办了,对于增,我们只需要传入值就搞定!
* 用boolean的意于在调用时候可以进行判断是-否,让代码更严谨
*/
public boolean insert(ContentValues values) {
boolean flag = false;
SQLiteDatabase db = null;
try {
//该方法是要对数据进行‘写’的一个操作所以用witeableDatabase
db = openhelper.getWritableDatabase();
long rows = db.insert("Students", null, values);
//查阅API可以发现这里的true是当rows!=-1所以直接返回这个即可
flag = (rows != -1);
} catch (Exception e) {
// TODO: handle exception
} finally {
//一定记得关闭database和关闭流意思相同
if (db != null) {
db.close();
}
}

return flag;
}

/**
* 3.删
* db.delete(table, whereClause, whereArgs)
* 第一个参数:table-->表名
* 第二个参数:whereClause-->删除条件语句
* 第三个参数:whereArgs--->删除条件的数组值
* 弄清参数后,该方法就好写了只需设定 删除条件(name=?或者id=?)
* 然后根据输入获取到whereArgs(值)
*/
public boolean delete(String whereClause, String[] whereArgs) {
boolean flag = false;

SQLiteDatabase db = null;
try {
//该方法是要对数据进行‘写’的一个操作所以用witeableDatabase
db = openhelper.getWritableDatabase();
int delete = db.delete("Students", whereClause, whereArgs);
//查阅API可以发现这里的true是当delete>0 所以直接返回这个即可
flag = delete > 0;
} catch (Exception e) {
// TODO: handle exception
} finally {
//database记得关闭!
if (db != null) {
db.close();
}
}

return flag;
}
/**
* 4.改
* db.update(table, values, whereClause, whereArgs)
* 第一个参数-->表名
* 第二个参数-->修改的值是一个ContentValues类型的一个封装了列名称和列值的Map
* 第三个参数-->修改条件
* 第四个参数-->修改条件数组值
* 清楚参数后,使用该方法只需传入要更新的内容(values)
* 根据什么来更新(name=?/id=?/age=?都行,开心就好)
* whereClause 更新字段的值 name=韩梅梅 /id=1/age=18,都可以!
*/
public boolean updata(ContentValues values, String whereClause,
String[] whereArgs) {
boolean flag = false;
SQLiteDatabase db = null;
try {
//该方法是要对数据进行‘写’的一个操作所以用witeableDatabase
db = openhelper.getWritableDatabase();
int update = db.update("Students", values, whereClause, whereArgs);
flag = update > 0;
} catch (Exception e) {
// TODO: handle exception
} finally {
//记得关闭 重要事情说三遍!
if (db != null) {
db.close();
}
}

return flag;
}
/**
* 5.查
* db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy)
* 最讨厌要传这么长的参数了 shit!
* 第一个参数-->表名
* 第二个参数-->String[] columns 列名称数组null
* 第三个参数-->selection 查询条件  根据什么来查(例:name=?/id=?/age=?)都可以
* 第四个参数-->selectionArgs 查询条件数组值  获得输入的name值、id值、age值都可以
* 第五个参数-->groupBy:分组列
* 第六个参数-->having:分组条件
* 第七个参数-->orderBy:排序列
* 后面五、六、七正常情况下都是null null null 不用管
* 清楚参数好办了,但是要注意返回值是一个Cursor游标 理解为指针就好,我们就通过他去数据库一条一条的查询的
* 后面三个参数不用管,这里的需要传入三个参数即可 column 可以为null,selection查询条件 selectionArgs查询条件数组值
* @return
*/
public Cursor select(String[] columns, String selection,
String[] selectionArgs) {
Cursor cursor = null;
//!!!注意这里,因为我们查询方法只是对数据库进行一个‘写’的操作所以这里用getReadableDatabase()即可
SQLiteDatabase db = openhelper.getReadableDatabase();
cursor = db.query("Students", columns, selection, selectionArgs, null,
null, null);

return cursor;
}

}


(对Sqlite类的增删查改并封装为一个方法的Dao类就写到这里,下篇写调用该类的方法实现增删查改并写一个小APP实现,理解不深刻,有需要改进的希望留言,就到这里了,开心就好—sKy)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据库 Sqlite