android sqlite 操作类封装,[Android] Sqlite 数据库操做 工具封装类
sqlite 数据库封装类html
DatabaseUtil.java(封装的类)java
packagecom.jack.androidbase.tools;importandroid.content.ContentValues;importandroid.content.Context;importandroid.database.Cursor;importandroid.database.SQLException;importandroid.database.sqlite.SQLiteDatabase;importandroid.database.sqlite.SQLiteOpenHelper;importandroid.util.Log;/*** sqlite 数据库操做类*/
public classDatabaseUtil {private static final String TAG = "DatabaseUtil";/*** Database Name*/
private static final String DATABASE_NAME = "student_data";/*** Database Version*/
private static final int DATABASE_VERSION = 1;/*** Table Name*/
private static final String DATABASE_TABLE = "tb_student";/*** Table columns*/
public static final String KEY_NAME = "name";public static final String KEY_GRADE = "grade";public static final String KEY_ROWID = "_id";/*** Database creation sql statement*/
private static final String CREATE_TABLE =
"create table " + DATABASE_TABLE + " (" + KEY_ROWID + " integer primary key autoincrement, "
+ KEY_NAME + " text not null, " + KEY_GRADE + " text not null);";/*** Context*/
private finalContext mCtx;privateDatabaseHelper mDbHelper;privateSQLiteDatabase mDb;/*** Inner private class. Database Helper class for creating and updating database.*/
private static class DatabaseHelper extendsSQLiteOpenHelper {
DatabaseHelper(Context context) {super(context, DATABASE_NAME, null, DATABASE_VERSION);
}/*** onCreate method is called for the 1st time when database doesn't exists.*/@Overridepublic voidonCreate(SQLiteDatabase db) {
Log.i(TAG,"Creating DataBase: " +CREATE_TABLE);
db.execSQL(CREATE_TABLE);
}/*** onUpgrade method is called when database version changes.*/@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, intnewVersion) {
Log.w(TAG,"Upgrading database from version " + oldVersion + " to "
+newVersion);
}
}/*** Constructor - takes the context to allow the database to be
* opened/created
*
*@paramctx the Context within which to work*/
publicDatabaseUtil(Context ctx) {this.mCtx =ctx;
}/*** This method is used for creating/opening connection
*
*@returninstance of DatabaseUtil
*@throwsSQLException*/
public DatabaseUtil open() throwsSQLException {
mDbHelper= newDatabaseHelper(mCtx);
mDb=mDbHelper.getWritableDatabase();return this;
}/*** This method is used for closing the connection.*/
public voidclose() {
mDbHelper.close();
}/*** This method is used to create/insert new record record.
*
*@paramname
*@paramgrade
*@returnlong*/
public longinsert(String name, String grade) {
ContentValues initialValues= newContentValues();
initialValues.put(KEY_NAME, name);
initialValues.put(KEY_GRADE, grade);return mDb.insert(DATABASE_TABLE, null, initialValues);
}/*** This method will delete record.
*
*@paramrowId
*@returnboolean*/
public boolean delete(longrowId) {return mDb.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
}/*** This method will deleteAll record.
*
*@return
*/
public booleandeleteAll() {return mDb.delete(DATABASE_TABLE, " 1 ", null) > 0;
}/*** This method will return Cursor holding all the records.
*
*@returnCursor*/
publicCursor fetchAll() {return mDb.query(DATABASE_TABLE, newString[]{KEY_ROWID, KEY_NAME,
KEY_GRADE},null, null, null, null, null);
}/*** This method will return Cursor holding the specific record.
*
*@paramid
*@returnCursor
*@throwsSQLException*/
public Cursor fetch(long id) throwsSQLException {
Cursor mCursor=mDb.query(true, DATABASE_TABLE, newString[]{KEY_ROWID,
KEY_NAME, KEY_GRADE}, KEY_ROWID+ "=" + id, null,null, null, null, null);if (mCursor != null) {
mCursor.moveToFirst();
}returnmCursor;
}/*** This method will update record.
*
*@paramid
*@paramname
*@paramstandard
*@returnboolean*/
public boolean update(intid, String name, String standard) {
ContentValues args= newContentValues();
args.put(KEY_NAME, name);
args.put(KEY_GRADE, standard);return mDb.update(DATABASE_TABLE, args, KEY_ROWID + "=" + id, null) > 0;
}
}
使用详解:android
DatabaseUtil dbUtil = new DatabaseUtil(this);
dbUtil.open();
switch (v.getId()) {
case R.id.other_btn_sqlite_list: //查询
Cursor cursor = dbUtil.fetchAll();
if (cursor != null) {
while (cursor.moveToNext()) {
Log.i("Student", "ID:" + cursor.getInt(0) + ",Student Name: " + cursor.getString(1) +
",Grade: " + cursor.getString(2));
}
}
break;
case R.id.other_btn_sqlite_add:
dbUtil.insert("Prashant Thakkar", "100");
Log.i("Student", "add over");
break;
case R.id.other_btn_sqlite_update:
dbUtil.update(1, "aa", "bb");
Log.i("Student", "update over");
break;
case R.id.other_btn_sqlite_del:
dbUtil.delete(2);
Log.i("Student", "delete over");
break;
case R.id.other_btn_sqlite_del_all:
dbUtil.deleteAll();
Log.i("Student", "delete all over");
break;
}
dbUtil.close();sql
参考网址:数据库
https://www.cnblogs.com/sowhat4999/p/4439856.htmlide
https://www.cnblogs.com/ProMonkey/p/5765616.html (有添加单例模式)fetch
本博客地址: wukong1688this
转载请著名出处!谢谢~~spa
android sqlite 操作类封装,[Android] Sqlite 数据库操做 工具封装类相关推荐
- android sqlite 操作类封装,SQLiteUtils 一个简单的基于 Android 的 Sqlite 数据库的操作封装库 @codeKK Android开源站...
一个简单的基于 Android 的 Sqlite 数据库的操作封装,它有如下的好处: 便捷地创建表和增添表字段 通过操作对象来 insert 或者 update 表记录 支持多种查询方式,支持分页查询 ...
- 一个夭折 脱裤子放屁的QSql Sqlite操作类
本来想自己封装一下Sqlite操作类 写到一半才发现是脱裤子放屁 多此一举了 自己写的东西还没有Qt用起来简洁 唯一的好处估计就是能在整个工程里对同一个数据库进行操作 ...
- 小博老师解析Java核心技术 ——JDBC数据库操作类封装
2019独角兽企业重金招聘Python工程师标准>>> [引言] 我们在学习Java编程时,连接数据库技术(JDBC)是一项必备技能,我们经常需要读取或操作持久性存储的结构化数据.那 ...
- android获得application类对象,android之Application类介绍
Application类 application是用来保存全局变量的,并且是在package创建的时候就跟着存在了. 当我们需要创建全局变量的时候,而直接在application中去实现. 只需要调用 ...
- python,一个简单的sqlite 操作类
1,代码 import sqlite3class DB(object):Db='E:/test.db'# 执行sql函数#2018/2/9def Excute(self,sql):conn = sql ...
- Android 震动器操作类
/**** 2021/11/30* @author xiaotie*/ @SuppressLint("MissingPermission") class VibrateHelp(c ...
- android 加载条封装,Android基于JsBridge封装的高效带加载进度的WebView
图片发自简书App 概述 从去年4月项目就一直用起了JsBridge,前面也针对jsBridge使用姿势介绍过一篇入门篇,<Android JsBridge实战 打造专属你的Hybrid APP ...
- android 数据埋点封装,Android 数据埋点的重新思考
已经有很久没有更新文章了,我想做过客户端开发的应该都有干过数据埋点的事吧,其实我之前一直在思考怎么让数据埋点更优雅,好在最近有了新的想法,所以分享出来给大家一起参考参考. 有人说我的之前文章很些难懂, ...
- windows下的串口编程,串口操作类封装
以往都是在嵌入式设备中经常操作串口,或者使用QT的串口类.在Win32中处理串口也是有办法的,操作文件的打开和读写进行串口的操作.使用ReadFile.WriteFile函数. 基本步骤 使用Win3 ...
最新文章
- Kubeedge Edged概述
- MP3 编码解码 附完整c代码
- 零下273.14度稳定运行!中科院自主研发稀释制冷机,高端科研仪器取得突破进展...
- SPFILE 、PFILE 的全面解读
- python 库 全局变量_python局部变量和全局变量global
- c语言之计算两个数的大数
- Python中os模块使用方法
- Vue使用html2canvas将Dom转化为图片
- Chapter 7 代理模式
- 利用Python中的GDAL和OGR模块实现shapefile对栅格DEM数据的裁剪
- 阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_14-异常处理-异常处理的问题分析...
- js Promise理解,同时请求多个接口等
- java必背代码_java必背代码入门有哪些?如何写出优质代码?
- 贴片电容封装及尺寸示意图
- 常见Web安全漏洞及测试方法(转载)
- php 年会抽奖,PHP+jQuery年会在线拍照抽奖
- 光学动作捕捉系统原理
- 别再乱提交代码了,看下大厂 Git 提交规范是怎么做的!
- selenum登录163邮箱
- 报考华为认证考试流程
热门文章
- 前端学习(1732):前端系列javascript之插入内容
- 前端学习(549):node的 http模块
- 第一百二十二期:大数据分析:红包先抢好,还是后抢好
- 玩转oracle 11g(19):ora-00020和64位数据库安装32为plsql
- java学习(94):cpu随机调用线程测试
- 算法之排序算法-shell排序(移位法)
- HttpClient系列~StringContent与FormUrlEncodedContent
- electron-关闭之前,弹出提示窗
- 【练习】实现一个parse方法(需要实现的效果见内容),方法总结
- 隐隐约约 听 RazorEngine 在 那里 据说 生成代码 很 美。