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

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

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

复制代码
public class noteDBHelper extends SQLiteOpenHelper {
    public noteDBHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public 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);

    }

    @Override
    public 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;
    }

}
相关推荐
ss2733 分钟前
AI时代首先数据库-PostgreSQL实战笔记 | 11 PostgreSQL安装部署常见问题排查与解决
数据库·笔记·postgresql
ydjs678899-bot6 分钟前
如何在Java中打印pdf静默打印和打印对话框选择
java·python·pdf
Shaoshing8 分钟前
存储引擎与架构
java·开发语言·架构
张张123y10 分钟前
# 后端第八课:数据库入门(给 FastAPI 接口加上“记忆“,存下问答历史)
数据库·sql·mysql·oracle·fastapi·sqllite
鶴哥只手遮天16 分钟前
Spring Framework 7.0.9 深度剖析-01-整体架构与设计哲学
java·后端·开源
cspttty20 分钟前
2027秋招市场调研岗:统计学专业如何补齐业务、SQL与研究交付能力
大数据·数据库
const_qiu23 分钟前
第 2.5 章 2.5.6:前端登录、Token 无感续签与路由守卫
java·前端·人工智能·状态模式
BD_Marathon30 分钟前
Milvus数据库的DML操作
数据库·milvus
devilnumber31 分钟前
Java 代理模式(简单理解回顾)
java·开发语言·代理模式
其实防守也摸鱼35 分钟前
存储管理:页面置换算法学习任务(测验题要求给出置换页面顺序,缺页次数,缺页率)
android·前端·数据库·学习·oracle·自动化