本来不太想写这篇博客的,但是看到网上的关于android数据库操作的博文都讲得很详细,对于像我这样的新手入门了解SQLite的基本操作有一定难度,所以我参考了网上的一些博客文章,并自己亲自摸索了一遍,希望写出这么一篇博文来记录SQLite的最基本操作,同时也希望能够对android的新手们有些帮助。

参考博客:http://www.20864.com/201247/274.html

这里只是一个示范性的demo,并没实现什么具体功能,只实现了对数据库的增删查改操作。

以下是实现demo的步骤:

第一步,创建自己的SQL操作类 DBHelper

package com.example.SQLiterTest;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log; /**
* 可以通过SQLiteOpenHelper的以下两个方法来或得SQLiteDatabase的对象:
* getReadableDatabase() 创建或者打开一个查询数据库
* getWritableDatabase() 创建或者打开一个可写数据库
*/
public class DBHelper extends SQLiteOpenHelper { /**
* 构造函数,必须实现
* @param context 上下文路径
* @param name 数据库名称
* @param factory 可选游标工厂,通常为NULL
* @param version 当前数据库版本号
*/ private SQLiteDatabase mDataBase = null;
private static final String USER_TABLE = "user"; public DBHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
mDataBase = this.getWritableDatabase();
} //数据库第一次创建时会调用,一般在其中创建数据库表
@Override
public void onCreate(SQLiteDatabase db) {
//使用execSQL()方法执行SQL语句,如果没有异常,这个方法没有返回值
db.execSQL("create table user(id INTEGER PRIMARY KEY AUTOINCREMENT," +
"name varchar(20), address TEXT)");
Log.v("mytab","-->onCreate");
} //当数据库需要修改的时候,Android系统会主动的调用这个方法。
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {} //打开数据库时的回调函数,一般不会用
@Override
public void onOpen(SQLiteDatabase db) {
super.onOpen(db);
Log.v("mytab","-->onOpen");
} @Override
public synchronized void close() {
super.close();
} }

第二步,在Activity的onCreate函数中实现增删查改的功能。

package com.example.SQLiterTest;

import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log; public class MyActivity extends Activity {
/**
* Called when the activity is first created.
*/
private SQLiteDatabase db; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); // 获取处理SQLiteOpenHelper的子类的SQLite的实例,如果只读,可以采用getReadableDatabase(),
// 这个例子我们奖通过SQLiteDatabase实例的操作,来进行对数据进行增删改查询,采用可写的方式。
db = new DBHelper(getApplicationContext(),"mydb",null,1).getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put("name", "JackLi");
cv.put("address", "QingYuan");
//插入
db.insert("user",null,cv);
Log.v("mytab","-->have insert");
//更新
ContentValues cv2 = new ContentValues();
cv2.put("name","HaiXin");
db.update("user",cv2,"name=?",new String[]{"JackLi"});
Log.v("mytab","-->have updated"); //查询
String[] columns = {"name", "address"};
Cursor cursor = db.query("user",columns,"name = ?", new String[] {"HaiXin"},null,null,null);
while (cursor.moveToNext())
{
String myname = cursor.getString(cursor.getColumnIndex("name"));
Log.v("mytab","---->"+myname);
} //删除
db.delete("user","name = ?",new String[]{"HaiXin"});
Log.v("mytab","-->have delete");
} @Override
protected void onDestroy() {
super.onDestroy();
db.close();
}
}

  

  总的来说整个过程只有两步,在第一次运行这个demo时,会创建一个名叫"mydb"的数据库和一个叫“user”的数据表。

运行程序后,在logcat中会显示以下一些信息:

05-19 08:08:30.864    1802-1802/com.example.SQLiterTest V/mytab﹕ -->onOpen
05-19 08:08:30.872 1802-1802/com.example.SQLiterTest V/mytab﹕ -->have insert
05-19 08:08:30.888 1802-1802/com.example.SQLiterTest V/mytab﹕ -->have updated
05-19 08:08:30.888 1802-1802/com.example.SQLiterTest V/mytab﹕ ---->HaiXin
05-19 08:08:30.900 1802-1802/com.example.SQLiterTest V/mytab﹕ -->have delete

  通过logcat中的信息可以很清楚的看到程序的执行过程。

Android SQLite最简单demo实现(增删查改)的更多相关文章

  1. C# SQLite 创建数据库的方法增删查改语法和命令

    SQLite介绍 SQLite是一个开源.免费的小型RDBMS(关系型数据库),能独立运行.无服务器.零配置.支持事物,用C实现,内存占用较小,支持绝大数的SQL92标准. SQLite数据库官方主页 ...

  2. 在Eclipse上实现简单的JDBC增删查改操作

    在Javaweb的学习里,学到了如何完成简单的增删查改操作,在这里撰写一篇文章以便自己整理回忆. 首先要建立一些包和导入一些文件.建一些类.具体框架如图  编写Product类 public clas ...

  3. springboot使用RestHighLevelClient7简单操作ElasticSearch7增删查改/索引创建

    本次操作是在  Windows上安装ElasticSearch7  进行操作 导入依赖 <?xml version="1.0" encoding="UTF-8&qu ...

  4. SSH框架的多表查询和增删查改 (方法一)上

    原创作品,允许转载,转载时请务必标明作者信息和声明本文章==>  http://www.cnblogs.com/zhu520/p/7772823.html   因为最近在做Android 练习的 ...

  5. SQLite在Android程序中的使用方法,SQLite的增删查改方法

    Sqlite: 1.一款用来实现本地数据存储的轻量级数据管理工具,是众多用来实现数据库管理的工具之一. 2.Android已经将SQLite的代码功能吸收在它的系统中,我们可以直接在Android程序 ...

  6. 后端Spring Boot+前端Android交互+MySQL增删查改

    2021.1.27 更新 已更新新版本博客,更新内容很多,因此新开了一篇博客,戳这里. 1 概述 使用spring boot作为后端框架与Android端配合mysql进行基本的交互,包含了最基本的增 ...

  7. Android——另外一种增删查改的方式(ContentProvider常用)

    以下介绍另外一种增删查改的方式 package com.njupt.sqllist; import java.util.ArrayList; import java.util.List; import ...

  8. 后端Spring Boot+前端Android交互+MySQL增删查改(Java+Kotlin实现)

    1 前言&概述 这篇文章是基于这篇文章的更新,主要是更新了一些技术栈以及开发工具的版本,还有修复了一些Bug. 本文是SpringBoot+Android+MySQL的增删查改的简单实现,用到 ...

  9. nodejs连接mysql并进行简单的增删查改

    最近在入门nodejs,正好学习到了如何使用nodejs进行数据库的连接,觉得比较重要,便写一下随笔,简单地记录一下 使用在安装好node之后,我们可以使用npm命令,在项目的根目录,安装nodejs ...

随机推荐

  1. flutter笔记1:VScode安装dart code插件踩坑记录

    新手菜鸟一枚,想从产品转入技术坑,目标:移动端APP开发.最近听技术达人 飞狐 说flutter beta发布了,支持跨平台APP开发,各种强大易上手,于是乎零基础入坑~话说想提高英文水平的同学,请移 ...

  2. autoburn eMMC hacking

    #!/bin/sh # autoburn eMMC hacking # 说明: # 看一下富林的自动烧录的执行脚本原理. # # -- 深圳 龙华樟坑村 曾剑锋 # 创建sd卡挂载目录 if [ ! ...

  3. iOS开发错误汇总

    人非圣贤孰能无过 dyld: Library not loaded: /... 过而能改善莫大焉 iOS下dyld: Library not loaded: 错误信息解决方案

  4. day4(带)

    int is_his_file(char*filename,char *username) { int ret; struct passwd *user_info;// struct stat sta ...

  5. Java面向对象设计主要有三大特征:封装性、继承性和多态性

    Java面向对象设计主要有三大特征:封装性.继承性和多态性 一  封装性   1.1  概念:它是将类的一些敏感信息隐藏在类的类部,不让外界直接访问到,但是可以通过getter/setter方法间接访 ...

  6. VS2013下的64位与32位程序配置

    VS2013下的64位与32位程序配置   在Windows 7 64bit和Visual Studio 2013下生成64位程序. 新建一个Visual Studio Win32 Console项目 ...

  7. osquery简单试用

    备注: osquery  facebook 开源的将操作系统指标转换为sql 查询,方便好用,很适合devops 性能分析,系统监控 1. 安装 参考 https://osquery.io/downl ...

  8. nginx ngscript 简单使用

    备注: 默认没有集成到nginx包里,需要单独安装(推荐使用动态模块的方式进行安装) 1. 安装 wget https://nginx.org/download/nginx-1.13.11.tar.g ...

  9. 使用neon 开发nodejs addon

    备注:开发使用的是mac 系统,需要安装rust nodejs .python2.7 Xcode 1. 安装neon npm install -g neon-cli   2. 创建简单项目 neon ...

  10. Huffman树的构造及编码与译码的实现

    哈夫曼树介绍 哈夫曼树又称最优二叉树,是一种带权路径长度最短的二叉树.所谓树的带权路径长度,就是树中所有的叶结点的权值乘上其到根结点的路径长度(若根结点为0层,叶结点到根结点的路径长度为叶结点的层数) ...