安卓入门--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)
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- 数据库链接字符串查询网站
- DB2实例管理
- DB2实例管理
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- 第三章 数据库备份和还原
- 创建一个空的IBM DB2 ECO数据库的方法
- Access 2000 数据库 80 万记录通用快速分页类
- 开通一个数据库失败的原因的和解决办法
- 一个简单的asp数据库操作类
- SQLite教程(十一):临时文件
- CentOS下DB2数据库安装过程详解
- EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页
- SQLite中重置自动编号列的方法
- sql2008 还原数据库解决方案
- Oracle 数据库自动存储管理-安装配置
- Oracle数据库执行脚本常用命令小结
- Oracle 数据库 临时数据的处理方法