本来不太想写这篇博客的,但是看到网上的关于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. keras 报错 ValueError: Tensor conversion requested dtype int32 for Tensor with dtype float32: 'Tensor("embedding_1/random_uniform:0", shape=(5001, 128), dtype=float32)'

    在服务器上训练并保存模型,复制到本地之后load_model()报错: ValueError: Tensor conversion requested dtype int32 for Tensor w ...

  2. HDU 2268

    http://acm.hdu.edu.cn/showproblem.php?pid=2268 小学四年级应用题,让我找回了儿时的快乐... #include <iostream> #inc ...

  3. 如何将局域网中的 windows 硬盘挂载到 linux 系统中

    1.共享windows上的E盘 2.linux上执行 mount //192.168.3.181/e /tmp/test -o username=dell,,password=abcdef 3.保证两 ...

  4. Hadoop2.x下安装HBase

    1.安装好 hadoop 集群,并启动 [grid@hadoop4 ~]$ /sbin/start-dfs.sh [grid@hadoop4 ~]$ /sbin/start-yarn.sh 查看 ha ...

  5. 机器学习中的ground truth

    ground truth就是参考标准,一般用来做误差量化.比方说要根据历史数据预测某一时间的温度,ground truth就是那个时间的真实温度.error就是(predicted temperatu ...

  6. SVN 如何更新整个目录

    SVN 有时会遇到更新整个目录的情况, 比如依赖的某个库有了新版本, 需要更新. 这个时候的处理可能需要注意一些问题.(直接跳到最后看结论) 举个例子: 根文件是 test, 里面用 external ...

  7. IDEA中项目统一编码格式设置

    统一UTF-8编码设置 第一处 File-settings-Editor-File Encodings 第二处 File-Other settings-Default settings 第三处 tom ...

  8. Roslyn 入门:使用 Visual Studio 的语法可视化窗格查看和了解代码的语法树

    使用 Visual Studio 提供的 Syntax Visualizer,我们可以实时看到一个代码文件中的语法树.这对我们基于 Roslyn 编写静态分析和修改工具非常有帮助.本文将介绍如何安装它 ...

  9. 《selenium2 python 自动化测试实战》(18)——自动化测试模型(一)

    线性测试 已经被淘汰了:线性测试就是一个脚本完成一个场景,代码基本没有复用,每一个脚本都要从头开始写——这哪行. 模块化与类库 这个就是分模块:有点类似面系那个对象,把功能(比如登录)单独拿出来,当下 ...

  10. javascript异常处理。 屏蔽异常

    http://www.cnblogs.com/aqbyygyyga/archive/2011/10/29/2228824.html