1. 程式人生 > >Android sqlite工具類

Android sqlite工具類

建立sqlite資料庫

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;


public class DatabaseHelper extends SQLiteOpenHelper {

    //資料庫名字
    private static final String DB_NAME = "note.db";

    //本版號
    private static final int VERSION = 1;

    //建立表
    private static final  String CREATE_TABLE_NOTE = "CREATE TABLE note(_id integer primary key autoincrement,"+
            "title text, content text, createDate text, updateDate text)";

    //刪除表
    private static final String DROP_TABLE_NOTE = "drop table if exists note";


    public DatabaseHelper(Context context) {
        super(context, DB_NAME, null, VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        //SQLiteDatabase 用於操作資料庫的工具類
        db.execSQL(CREATE_TABLE_NOTE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL(DROP_TABLE_NOTE);
        db.execSQL(CREATE_TABLE_NOTE);
    }
}
下面是採用原生的方式進行增刪改查
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;

import com.recker.note.data.MetaData;
import com.recker.note.data.Note;

import java.util.ArrayList;


public class DatabaseAdapter {

    private DatabaseHelper dbHelper;

    public DatabaseAdapter(Context context) {
        dbHelper = new DatabaseHelper(context);
    }

    /**
     * 新增資料
     *
     * @param note
     */
    public void create(Note note) {
        String sql = "insert into note(title, content, createDate, updateDate)values(?,?,?,?)";
        Object[] args = {note.getTitle(), note.getContent(), note.getCreateDate(), note.getUpdateDate()};
        SQLiteDatabase db = dbHelper.getWritableDatabase();

        db.execSQL(sql, args);
        db.close();
    }

    /**
     * 刪除資料
     *
     * @param id
     */
    public void remove(int id) {
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        String sql = "delete from note where _id = ?";
        Object[] args = {id};
        db.execSQL(sql, args);
        db.close();
    }

    /**
     * 修改資料
     *
     * @param note
     */
    public void update(Note note) {
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        String sql = "update note set title = ?, content = ?, updateDate = ? where _id = ?";
        Object[] args = {note.getTitle(), note.getContent(), note.getUpdateDate(), note.getId()};
        db.execSQL(sql, args);
        db.close();
    }

    /**
     * 按id查詢
     *
     * @param id
     * @return
     */
    public Note findById(int id) {
        SQLiteDatabase db = dbHelper.getReadableDatabase();
        String sql = "select * from note where _id = ?";
        Cursor cursor = db.rawQuery(sql, new String[]{String.valueOf(id)});

        Note note = null;
        if (cursor.moveToNext()) {
            note = new Note();

            note.setId(cursor.getInt(cursor.getColumnIndexOrThrow(MetaData.NoteTable._ID)));
            note.setTitle(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.TITLE)));
            note.setContent(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.CONTENT)));
            note.setCreateDate(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.CREATE_DATE)));
            note.setUpdateDate(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.UPDATE_DATE)));
        }
        cursor.close();
        db.close();

        return note;
    }

    /**
     * 查詢所有
     *
     * @return
     */
    public ArrayList<Note> findAll() {
        SQLiteDatabase db = dbHelper.getReadableDatabase();
        String sql = "select * from note";
        Cursor cursor = db.rawQuery(sql,null);


        ArrayList<Note> notes = new ArrayList<>();
        Note note = null;
        while (cursor.moveToNext()) {
            note = new Note();

            note.setId(cursor.getInt(cursor.getColumnIndexOrThrow(MetaData.NoteTable._ID)));
            note.setTitle(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.TITLE)));
            note.setContent(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.CONTENT)));
            note.setCreateDate(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.CREATE_DATE)));
            note.setUpdateDate(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.UPDATE_DATE)));
            notes.add(note);
        }
        cursor.close();
        db.close();
        return notes;
    }

    /**
     * 分頁查詢
     *
     * @param limit 預設查詢的數量
     * @param skip 跳過的行數
     * @return
     */
    public ArrayList<Note> findLimit(int limit, int skip) {
        SQLiteDatabase db = dbHelper.getReadableDatabase();
        String sql = "select * from note order by _id desc limit ? offset ?";
        String[] strs = new String[]{String.valueOf(limit), String.valueOf(skip)};
        Cursor cursor = db.rawQuery(sql,strs);


        ArrayList<Note> notes = new ArrayList<>();
        Note note = null;
        while (cursor.moveToNext()) {
            note = new Note();

            note.setId(cursor.getInt(cursor.getColumnIndexOrThrow(MetaData.NoteTable._ID)));
            note.setTitle(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.TITLE)));
            note.setContent(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.CONTENT)));
            note.setCreateDate(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.CREATE_DATE)));
            note.setUpdateDate(cursor.getString(cursor.getColumnIndexOrThrow(MetaData.NoteTable.UPDATE_DATE)));
            notes.add(note);
        }
        cursor.close();
        db.close();
        return notes;
    }
}



相關推薦

Android Sqlite 工具封裝

鑑於經常使用 Sqlite 資料庫做資料持久化處理,進行了一點封裝,方便使用。 該封裝類主要支援一下功能 支援多使用者資料儲存 支援 Sqlite資料庫升級 支援傳入 Sql 語句建表 支援 SQLiteDatabase 基本操作。比如:execSQL、ra

Android sqlite工具

建立sqlite資料庫 import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelpe

Android常用工具

cti def air exp -a src 重復元素 nec empty 主要介紹總結的Android開發中常用的工具類,大部分同樣適用於Java。目前包括HttpUtils、DownloadManagerPro、ShellUtils、PackageUtils、Prefe

Android Toast 工具

android  中常用系統吐司工具類 package cn.yhq.utils; import android.content.Context; import android.widget.Toast; /** * Created by hanbao on 2018/9/22. *

Android常用工具集合(持續更新)

1.訊息通知管理類,適配Android8.0 https://blog.csdn.net/huangliniqng/article/details/83537119 2.Android撥打電話工具類:  https://blog.csdn.net/huangliniqng/

Android列印工具

Android列印除錯類,可打印出日誌所在的檔名、方法名、行號,使用的時候將Log換成LogTools即可,其他地方不變。 public class LogTools { private static final String DEBUG_TAG = "TEST";

Android SharedPreferences工具 ,實現List/Map的儲存讀取

最近因為需要將List集合和Map集合的資料儲存到SharedPreferences中,所以對以前自己封裝的SharedPreferencesUtil進行了修改,在原有的儲存讀Integer,String,Float,Long,Boolean,Object的基礎上增加了儲存讀取List<Obj

Android時間工具 本地轉UTC,UTC轉本地

package com.peopleapp.en.util; import android.content.Context; import android.text.TextUtils; import android.text.format.DateFor

android SQLite封裝

/** * * @ClassName: DataBaseOpenHelper * @Description: 資料庫工具類 * */ public class DataBaseOpenHelper extends SQLiteOpenHelper { private static

android聯網工具

 聯網工具類 1.判斷網路是否可用  2.判斷網路是否已連線  3.獲取網路型別 4.判斷是否是WiFi網路   5. 判斷是否是Mobile網路 // 判斷網路是否可用  public static boolean isNetworkAvailable(Contex

Android-GsonUtil-工具

GsonUtil-工具類 是把Google提供的Gons進行了方法封裝,提供了關於一些常用的Gons使用的公共方法;   package common.library.utils; import android.text.TextUtils; import com.google.gso

Android-DateTimeAndroidUtil-工具

DateTimeAndroidUtil-工具類 是關於時間日前相關的公用方法;   package liudeli.mynetwork01.utils; import android.util.Log; import java.text.ParseException; import j

Android-SPUtil-工具

SPUtil-工具類 是專門對 Android共享首選項 SharedPreferences 的資料儲存/資料獲取,提供了公共的方法行為;   package common.library.utils; import android.content.Context; impor

Android-FileUtils-工具

FileUtils-工具類 是對檔案操作處理的方法進行了封裝,提供了公共的方法;   package common.library.utils; import android.annotation.SuppressLint; import android.net.Uri; import

Android-HttpsURLConnectionHelp-工具

HttpsURLConnectionHelp-工具類 是專門把javax.net.ssl.HttpsURLConnection類的使用,進行了封裝,提供了常用的公共方法;   package common.library.utils; import android.graphics.Bi

Android時間工具

package com.dejun.commonsdk.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Dat

Android 常見工具封裝

1,MD5工具類: public class MD5Util { public final static String MD5(String s) { char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '

Android 基礎工具 摘自quantan.liu 易讀專案

package com.laotan.easyreader.webview; import android.app.ActivityManager; import android.content.ClipboardManager; import android.content.Context; i

android 常用 工具 com.liuan:common 個人總結

git 地址 點我傳送  此處永遠是線上最新的程式碼!!!!! 說明書在git README.md 內容同下 可能有會更改 大概如下 最新說明文件 點我tp 有些程式碼寫第一次 興致盎然,可

android 檔案工具

package base.util; import android.os.Environment; import java.io.File; /** * Created by ckb on 2017/3/31. */ public class AppFileUtil {