Android使用SQLite数据库的简单实例
发布时间:2022-03-04 13:52:50
先画个图,了解下Android下数据库操作的简单流程:
1.首先,写一个自己的数据库操作帮助类,这个类继承自Android自带的SQLiteOpenHelper.
2.在自己的DAO层借助自己的Helper写数据库操作的一些方法
3.Activity调用DAO层的数据库操作方法进行操作
下面例子是:
1.Helper
package cn.learn.db.util;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
public class DBHelper extends SQLiteOpenHelper {
private final static String DB_NAME ="test.db";//数据库名
private final static int VERSION = 1;//版本号
//自带的构造方法
public DBHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
}
//为了每次构造时不用传入dbName和版本号,自己得新定义一个构造方法
public DBHelper(Context cxt){
this(cxt, DB_NAME, null, VERSION);//调用上面的构造方法
}
//版本变更时
public DBHelper(Context cxt,int version) {
this(cxt,DB_NAME,null,version);
}
//当数据库创建的时候调用
public void onCreate(SQLiteDatabase db) {
String sql = "create table student(" +
"id integer primary key autoincrement," +
"name varchar(20)," +
"age int)";
db.execSQL(sql);
}
//版本更新时调用
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "update student ....";//自己的Update操作
db.execSQL(sql);
}
}
2.写DAO层
package cn.learn.db.dao;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import cn.learn.db.dao.domain.Student;
import cn.learn.db.util.DBHelper;
public class StudentDao {
DBHelper helper = null;
public StudentDao(Context cxt) {
helper = new DBHelper(cxt);
}
/**
* 当Activity中调用此构造方法,传入一个版本号时,系统会在下一次调用数据库时调用Helper中的onUpgrade()方法进行更新
* @param cxt
* @param version
*/
public StudentDao(Context cxt, int version) {
helper = new DBHelper(cxt, version);
}
// 插入操作
public void insertData(Student stu) {
String sql = "insert into student (name,age)values(?,?)";
SQLiteDatabase db = helper.getWritableDatabase();
db.execSQL(sql, new Object[] { stu.name, stu.age });
}
// 其它操作
}
完成这些,其它操作就简单了....
另外,数据库文件放在这个目录


猜你喜欢
- 由于我经常下载一些pdf格式的电子书,有的时候一些好书下载下来没有书签,读起来感觉没有整体的感觉,所以决定自己写一个小工具,将特定格式的文本
- 目录背景实体类示例一示例二背景以前常用的排序方式是通过实现Comparator接口来进行排序,写法相对来说比较复杂,使用Comparator
- Eclipse项目中为什么会有红感叹号,具体分析一下【问题原因】:工程中classpath中指向的包路径错误【解决办法】:右键项目名称 Bu
- 一、前言 高斯混合模型(Gaussian Mixture Model)简称GMM,是一种业界广泛使用的聚类算法。它是多个高斯分布函
- 本文实例讲述了Java获得当前时间前指定几个小时具体时间的方法。分享给大家供大家参考,具体如下:package getBeforeHourD
- 本文实例为大家分享了C++实现幸运大抽奖的具体代码,供大家参考,具体内容如下程序效果:#ifndef DIALOG_H#define DIA
- FTPS:一种多传输协议,相当于加密版的FTP。当你在FTP服务器上收发文件的时候,你面临两个风险。第一个风险是在上载文件的时候为文件加密。
- char类在C#中表示一个unicode字符,正是这些unicode字符构成了字符串。unicode字符是目前计算机中通用的字符编码,它为针
- 1.Hibernate中的多表查询 1.1SQL中的多表查询【交叉连接】select * from A,B;【内连接】显示内连接:
- 一、实现接口调用一个接口中的方法,传统方法:接口类A:package lombda;/** * @author yeqv * @progra
- WinForm中的键盘按键有KeyDown,KeyPress和KeyUp事件。那么它们的顺序以及区别在哪里呢?本文就此作出如下分析:一、顺序
- 今天要分享一个非常简单的功能:使用Android原生控件Gallery实现照片拖动的特效实现思路如下:在布局文件中定义一个Gallery控件
- 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。程序分析:利用while语句,条件为输入的字符不为 '\n
- 一、说明1.spring aop中的 * 主要有两种方式,jdk * 和cglib * 2.从实现接口、继承父类的角度讨论区别3.从限
- 简介Maven为我们封装了很多构建中非常有用的操作,我们只需要执行简单的几个mvn命令即可。今天我们要讨论一下mvn命令之下的生命周期的构建
- stopWatch是org.springframework.util包下的一个工具类,使用它可直观的输出代码执行耗时,以及执行时间百分比,瞬
- 1.工作原理(算法思路)给定一个待排序数组,找到数组中最小的那个元素如果最小元素不是待排序数组的第一个元素,则将其和第一个元素互换在剩下的元
- Singleton是众多设计模式中最容易理解的一种,也是众多设计模式中较为重要的一种设计模式。接下来我们看看具体介绍。Singleton模式
- QueryWrapper条件构造之apply、last、select场景: 查询数据库限制条数时mysql上的limit使用 Qu
- 本文实例为大家分享了Unity3D撤回命令功能开发,供大家参考,具体内容如下在类似操作考核的项目中我们经常会遇到回到上一步的需求。所以我们有