android sqlite 数据库简单封装示例(java)

embedded/2024/12/25 22:22:17/

sqlite 数据库简单封装示例,使用记事本数据库表进行示例。

首先继承SQLiteOpenHelper 使用sql语句进行创建一张表。

public class noteDBHelper extends SQLiteOpenHelper {public noteDBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {super(context, name, factory, version);}@Overridepublic void onCreate(SQLiteDatabase sqLiteDatabase) {String sql="create table if not exists note_data(" +"note_id integer primary key autoincrement," +"note_tittle varchar,"+"note_content varchar,"+"note_type varchar,"+"createTime varchar,"+"updateTime varchar,"+"note_owner varchar)";sqLiteDatabase.execSQL(sql);}@Overridepublic void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {}
}

使用单例封装这张表的增删改查,同时转换成字段对应的结构体。这样方便数据管理,插入,查询,更新等操作。 

public class NoteDaoManage {private static NoteDaoManage noteDaoManage;Context context;noteDBHelper dbHelper;public static NoteDaoManage GetInstance(Context base) {if (noteDaoManage == null) {noteDaoManage = new NoteDaoManage(base);}return noteDaoManage;}private NoteDaoManage(Context context) {this.context = context;dbHelper = new noteDBHelper(context, "note.db", null, 1);}public void insertNote(NoteBean bean){SQLiteDatabase sqLiteDatabase= dbHelper.getWritableDatabase();ContentValues cv = new ContentValues();cv.put("note_tittle",bean.getTitle());cv.put("note_content",bean.getContent());cv.put("note_type",bean.getType());cv.put("createTime",bean.getCreateTime());cv.put("updateTime",bean.getUpdateTime());cv.put("note_owner",bean.getOwner());sqLiteDatabase.insert("note_data",null,cv);}public int DeleteNote(int id){SQLiteDatabase sqLiteDatabase= dbHelper.getWritableDatabase();int ret=0;ret=sqLiteDatabase.delete("note_data","note_id=?",new String[]{id + ""});return ret;}@SuppressLint("Range")public  List<NoteBean>  getAllData(){List<NoteBean> noteList = new ArrayList<>();SQLiteDatabase db = dbHelper.getWritableDatabase();String sql="select * from note_data "; // 查询全部数据Cursor cursor = db.rawQuery(sql,null);while (cursor.moveToNext()) {NoteBean note = new NoteBean();note.setId(cursor.getInt(cursor.getColumnIndex("note_id")));note.setTitle(cursor.getString(cursor.getColumnIndex("note_tittle")));note.setContent(cursor.getString(cursor.getColumnIndex("note_content")));note.setType(cursor.getString(cursor.getColumnIndex("note_type")));note.setCreateTime(cursor.getString(cursor.getColumnIndex("createTime")));note.setUpdateTime(cursor.getString(cursor.getColumnIndex("updateTime")));noteList.add(note);}if (cursor != null) {cursor.close();}if (db != null) {db.close();}return noteList;}public void updateNote(NoteBean note) {SQLiteDatabase db = dbHelper.getWritableDatabase();ContentValues cv = new ContentValues();cv.put("note_tittle", note.getTitle());cv.put("note_content", note.getContent());cv.put("note_type", note.getType());cv.put("updateTime", note.getUpdateTime());db.update("note_data", cv, "note_id=?", new String[]{note.getId()+""});db.close();}@SuppressLint("Range")public List<NoteBean> queryNotesAll(int mark, String text) {SQLiteDatabase db = dbHelper.getWritableDatabase();List<NoteBean> noteList = new ArrayList<>();NoteBean note;String sql ;Cursor cursor = null;if (TextUtils.isEmpty(text)){sql="select * from note_data "; // 查询全部数据}else {if(mark==0){sql = "SELECT * FROM note_data WHERE note_tittle LIKE '%" + text + "%'" + " order by note_id desc"; // 构建SQL语句}else {sql = "SELECT * FROM note_data WHERE note_content LIKE '%" + text + "%'" + " order by note_id desc"; // 构建SQL语句}}cursor = db.rawQuery(sql,null);while (cursor.moveToNext()) {note = new NoteBean();note.setId(cursor.getInt(cursor.getColumnIndex("note_id")));note.setTitle(cursor.getString(cursor.getColumnIndex("note_tittle")));note.setContent(cursor.getString(cursor.getColumnIndex("note_content")));note.setType(cursor.getString(cursor.getColumnIndex("note_type")));note.setCreateTime(cursor.getString(cursor.getColumnIndex("createTime")));note.setUpdateTime(cursor.getString(cursor.getColumnIndex("updateTime")));noteList.add(note);}if (cursor != null) {cursor.close();}if (db != null) {db.close();}return noteList;}}


http://www.ppmy.cn/embedded/148731.html

相关文章

hpe服务器更新阵列卡firmware

背景 操作系统&#xff1a;RHEL7.8 hpe服务器经常出现硬盘断开&#xff0c;阵列卡重启问题&#xff0c;导致系统hang住。只能手动硬重启。 I/O error&#xff0c;dev sda smartpqi 0000:5c:00:0: resettiong scsi 1:1:0:1 smartpqi 0000:5c:00:0: reset of scsi 1:1:0:1:…

【数据结构】数据结构整体大纲

数据结构用来干什么的&#xff1f;很简单&#xff0c;存数据用的。 &#xff08;这篇文章仅介绍数据结构的大纲&#xff0c;详细讲解放在后面的每一个章节中&#xff0c;逐个击破&#xff09; 那为什么不直接使用数组、集合来存储呢 ——> 如果有成千上亿条数据呢&#xff…

flutter小tip—— initState 和 build(一)

在 Flutter 开发中&#xff0c;有很多最佳实践和开发建议可以帮助你提高代码的质量、性能和可维护性。以下是一些常见的开发建议 1. 避免在 build 方法中执行耗时操作 问题&#xff1a;build 方法会在每次状态更新&#xff08;setState&#xff09;时被调用&#xff0c;如果里…

黑盒RCE测试 异或测试

前言 了解了漏洞的原理之后就需要知道 他在哪能出现 并且被利用 这个还是很重要的 异或测试 使用异或&#xff08;XOR&#xff09;运算进行加密解密的原理_异或加密-CSDN博客 异或测试是在 白盒内执行的 一个例题看一下 输入什么都是会报错 这种情况就需要使用 异或计…

MFC/C++学习系列之简单记录——序列化机制

MFC/C学习系列之简单记录——序列化机制 前言简述六大机制序列化机制使用反序列化总结 前言 MFC有六大机制&#xff0c;分别是程序启动机制、窗口创建机制、动态创建机制、运行时类信息机制、消息映射机制、序列化机制。 简述六大机制 程序启动机制&#xff1a;全局的应用程序…

springboot基于Java的校园导航微信小程序的设计与实现

摘 要 相比于以前的传统手工管理方式&#xff0c;智能化的管理方式可以大幅降低学校的运营人员成本&#xff0c;实现了校园导航的标准化、制度化、程序化的管理&#xff0c;有效地防止了校园导航的随意管理&#xff0c;提高了信息的处理速度和精确度&#xff0c;能够及时、准确…

OMG DDS 规范漫谈:分布式数据交互的演进之路

一、由来与起源脉络 OMG DDS&#xff08;Object Management Group Data Distribution Service&#xff09;的发展是计算机科学和技术进步的一个缩影&#xff0c;它反映了对高效、可靠的数据共享需求的响应。DDS 的概念萌生于20世纪90年代末&#xff0c;当时分布式计算已经从理…

opencv-day2-图像预处理1

图像预处理 在计算机视觉和图像处理领域&#xff0c;图像预处理能够提高后续处理&#xff08;如特征提取、目标检测等&#xff09;的准确性和效率。 常见的图像预处理操作&#xff1a; 图像色彩空间转换 图像大小调整 图像仿射变换 图像翻转 图像裁剪 图像二值化处理 图…