[Android] Sqlite 数据库操作 工具封装类
sqlite 数据库封装类
DatabaseUtil.java(封装的类)
- package com.jack.androidbase.tools;
- import android.content.ContentValues;
- import android.content.Context;
- import android.database.Cursor;
- import android.database.SQLException;
- import android.database.sqlite.SQLiteDatabase;
- import android.database.sqlite.SQLiteOpenHelper;
- import android.util.Log;
- /**
- * sqlite 数据库操作类
- */
- public class DatabaseUtil {
- 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 final Context mCtx;
- private DatabaseHelper mDbHelper;
- private SQLiteDatabase mDb;
- /**
- * Inner private class. Database Helper class for creating and updating database.
- */
- private static class DatabaseHelper extends SQLiteOpenHelper {
- DatabaseHelper(Context context) {
- super(context, DATABASE_NAME, null, DATABASE_VERSION);
- }
- /**
- * onCreate method is called for the 1st time when database doesn't exists.
- */
- @Override
- public void onCreate(SQLiteDatabase db) {
- Log.i(TAG, "Creating DataBase: " + CREATE_TABLE);
- db.execSQL(CREATE_TABLE);
- }
- /**
- * onUpgrade method is called when database version changes.
- */
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
- + newVersion);
- }
- }
- /**
- * Constructor - takes the context to allow the database to be
- * opened/created
- *
- * @param ctx the Context within which to work
- */
- public DatabaseUtil(Context ctx) {
- this.mCtx = ctx;
- }
- /**
- * This method is used for creating/opening connection
- *
- * @return instance of DatabaseUtil
- * @throws SQLException
- */
- public DatabaseUtil open() throws SQLException {
- mDbHelper = new DatabaseHelper(mCtx);
- mDb = mDbHelper.getWritableDatabase();
- return this;
- }
- /**
- * This method is used for closing the connection.
- */
- public void close() {
- mDbHelper.close();
- }
- /**
- * This method is used to create/insert new record record.
- *
- * @param name
- * @param grade
- * @return long
- */
- public long insert(String name, String grade) {
- ContentValues initialValues = new ContentValues();
- initialValues.put(KEY_NAME, name);
- initialValues.put(KEY_GRADE, grade);
- return mDb.insert(DATABASE_TABLE, null, initialValues);
- }
- /**
- * This method will delete record.
- *
- * @param rowId
- * @return boolean
- */
- public boolean delete(long rowId) {
- return mDb.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
- }
- /**
- * This method will deleteAll record.
- *
- * @return
- */
- public boolean deleteAll() {
- return mDb.delete(DATABASE_TABLE, " 1 ", null) > 0;
- }
- /**
- * This method will return Cursor holding all the records.
- *
- * @return Cursor
- */
- public Cursor fetchAll() {
- return mDb.query(DATABASE_TABLE, new String[]{KEY_ROWID, KEY_NAME,
- KEY_GRADE}, null, null, null, null, null);
- }
- /**
- * This method will return Cursor holding the specific record.
- *
- * @param id
- * @return Cursor
- * @throws SQLException
- */
- public Cursor fetch(long id) throws SQLException {
- Cursor mCursor =
- mDb.query(true, DATABASE_TABLE, new String[]{KEY_ROWID,
- KEY_NAME, KEY_GRADE}, KEY_ROWID + "=" + id, null,
- null, null, null, null);
- if (mCursor != null) {
- mCursor.moveToFirst();
- }
- return mCursor;
- }
- /**
- * This method will update record.
- *
- * @param id
- * @param name
- * @param standard
- * @return boolean
- */
- public boolean update(int id, String name, String standard) {
- ContentValues args = new ContentValues();
- args.put(KEY_NAME, name);
- args.put(KEY_GRADE, standard);
- return mDb.update(DATABASE_TABLE, args, KEY_ROWID + "=" + id, null) > 0;
- }
- }
使用详解:
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();
参考网址:
https://www.cnblogs.com/sowhat4999/p/4439856.html
https://www.cnblogs.com/ProMonkey/p/5765616.html (有添加单例模式)
本博客地址: wukong1688
本文原文地址:https://www.cnblogs.com/wukong1688/p/10666280.html
转载请著名出处!谢谢~~
[Android] Sqlite 数据库操作 工具封装类的更多相关文章
- Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库
下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQL ...
- 我的Android六章:Android中SQLite数据库操作
今天学习的内容是Android中的SQLite数据库操作,在讲解这个内容之前小编在前面有一篇博客也是讲解了SQLite数据库的操作,而那篇博客的讲解是讲述了 如何在Window中通过DOM来操作数据库 ...
- Android SQLite 数据库 增删改查操作
Android SQLite 数据库 增删改查操作 转载▼ 一.使用嵌入式关系型SQLite数据库存储数据 在Android平台上,集成了一个嵌入式关系型数据库--SQLite,SQLite3支持NU ...
- [Android] SQLite数据库之增删改查基础操作
在编程中常常会遇到数据库的操作,而Android系统内置了SQLite,它是一款轻型数据库,遵守事务ACID的关系型数据库管理系统,它占用的资源非常低,可以支持Windows/Linux/Un ...
- 【Android】实验8 SQLite数据库操作2016.5.12
实验8 SQLite数据库操作 [目的] 设计一个个人通讯录,掌握Android平台下的数据库开发,该个人通讯录主要包括联系人列表和联系人详细信息等界面. [要求] 程序主界面是通讯录的目录显示手机 ...
- 安卓 SQLite数据库操作实例
前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...
- 在安卓开发中使用SQLite数据库操作实例
前段时间写了个安卓平台下SQLite数据库操作的实例 ,一直没得时间总结 ,今天把它弄出来了. 在Android 运行时环境包含了完整的 SQLite. 首先介绍一下SQLite这个数据库: SQLi ...
- 图解IntelliJ IDEA 13版本对Android SQLite数据库的支持
IntelliJ IDEA 13版本的重要构建之一是支持Android程序开发.当然对Android SQLite数据库的支持也就成为了Android开发者对IntelliJ IDEA 13版本的绝对 ...
- 实验8 SQLite数据库操作
实验报告 课程名称 实验8 SQLite数据库操作 实验日期 2016.5.6 实验项目名称 多媒体应用开发 实验地点 S30010 实验类型 □验证型 √设计型 □综合型 学 时 一 ...
随机推荐
- MT【269】含参函数绝对值最大
设函数$f(x)=ax^2+(2b+1)x-a-2$($a,b\in\mathcal R$,$a\neq 0$). (1) 若$a=-2$,求函数$y=|f(x)|$在$[0,1]$上的最大值$M(b ...
- 【Gym 100971G】Repair
BUPT 2017 summer training (for 16) #1B 题意 Alex is repairing his country house. He has a rectangular ...
- zabbix 自动发现端口并添加监控设置
自动发现端口并添加监控设置UserParameter=net.listen.discovery,sudo /etc/zabbix/scripts/discovery_listport.sh #!/bi ...
- Python的快排应有的样子
快排算法 简单来说就是定一个位置然后,然后把比它小的数放左边,比他大的数放右边,这显然是一个递归的定义,根据这个思路很容易可以写出快排的代码 快排是我学ACM路上第一个让我记住的代码,印象很深 ...
- Codeforces Round #555 (Div. 3)[1157]题解
不得不说这场div3是真的出的好,算得上是从我开始打开始最有趣的一场div3.因为自己的号全都蓝了,然后就把不经常打比赛的dreagonm的号借来打这场,然后...比赛结束rank11(帮dreago ...
- [2017-7-28]Android Learning Day6
常用控件 Spinner DatePickerDialog TimePickerDiaog RadioButton CheckBox spinner(下拉菜单) <Spinner android ...
- BZOJ2839集合计数
题目描述 一个有N个元素的集合有2^N个不同子集(包含空集),现在要在这2^N个集合中取出若干集合(至少一个),使得 它们的交集的元素个数为K,求取法的方案数,答案模1000000007.(是质数喔~ ...
- poj 1611 The Suspects(并查集输出集合个数)
Description Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, wa ...
- 20165223 实验三 敏捷开发与XP实践
目录 一.实验报告封面 二.具体实验内容 (一)敏捷开发与XP实践-1 代码规范格式化 (二)敏捷开发与XP实践-2 添加搭档项目 (三)敏捷开发与XP实践-3 搭档代码重构 (四)敏捷开发与XP实践 ...
- OI生涯回忆录 2018.11.12~2019.4.15
上一篇:OI生涯回忆录 2017.9.10~2018.11.11 一次逆风而行的成功,是什么都无法代替的 ………… 历经艰难 我还在走着 一 NOIP之后,全机房开始了省选知识的自学. 动态DP,LC ...