android sqlite 示例,android SQLite数据库使用示例
数据库的操作,需用到数据库类SQLiteDatabase,重写管理员类SQLiteOpenHelper,用Cursor查询数据
一、操作数据库的辅助类,包含打开、关闭、增删改查方法
//自定义的数据库的接口,其中包含SQLiteHelper
public class NotesDbAdapter
{
//创建数据库所需语句及相关字符串
private static final String DATABASE_NAME = "note.db";
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_TABLE = "note";
private static final String DATABASE_CREATE =
"create table note("
+"_id INTEGER PRIMARY KEY,"
+"note TEXT,"
+"date TEXT,"
+"created INTEGER,"
+"modified INTEGER"
+");";
//数据库对象
private SQLiteDatabase db;
//定义数据库管理员类
private static class DatabaseHelper extends
SQLiteOpenHelper
{
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
db.execSQL(DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int
newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS "+DATABASE_TABLE);
onCreate(db);
}
}
//抽象界面
private Context mCtx =
null;
//数据库管理员对象
private DatabaseHelper dbHelper ;
//数据库各列名称
public static final String KEY_ROWID = "_id";
public static final String KEY_NOTE = "note";
public static final String KEY_DATE = "date";
public static final String KEY_CREATED = "created";
public NotesDbAdapter(Context ctx) {
this.mCtx = ctx;
}
//打开数据库
public NotesDbAdapter open () throws SQLException {
dbHelper = new DatabaseHelper(mCtx);
db = dbHelper.getWritableDatabase();
return this;
}
//关闭数据库
public void close() {
dbHelper.close();
}
//查询所有项目,返回一个Cursor
public Cursor getall()
{
return db.query(DATABASE_TABLE,
new String[] {KEY_ROWID, KEY_NOTE, KEY_DATE,
KEY_CREATED},
null, null, null, null, null);
}
// 新增一项
public long create(String Note,String mDate) {
Date now = new Date();
ContentValues args = new ContentValues();
args.put(KEY_NOTE, Note);
args.put(KEY_DATE, mDate);
args.put(KEY_CREATED, now.getTime());
return db.insert(DATABASE_TABLE, null, args);
}
//删除一项
public boolean delete(long rowId) {
return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null)
> 0;
}
//查询一项
public Cursor get(long rowId) throws SQLException
{
Cursor mCursor = db.query(true,
DATABASE_TABLE,
new String[] {KEY_ROWID, KEY_NOTE, KEY_DATE,
KEY_CREATED},
KEY_ROWID + "=" + rowId,
null, null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
//修改一项
public boolean update(long rowId, String note,String
date)
{
ContentValues args = new ContentValues();
args.put(KEY_NOTE, note);
args.put(KEY_DATE, date);
return db.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId,
null) > 0;
}
}
二、在主类中通过写好的辅助类操作数据库
private NotesDbAdapter mDbHelper;
private Cursor mNotesCursor;
//用自定义的数据库接口提供的方法打开数据库
mDbHelper = new NotesDbAdapter(this);
mDbHelper.open();
//获取cursor,当需要表中数据时再通过cursor访问
mNotesCursor = mDbHelper.getall();
startManagingCursor(mNotesCursor);
//实例化各list存储数据库各列内容
aryListNoteContent=new
ArrayList();
aryListNoteDate=new
ArrayList();
aryListNoteID=new
ArrayList();
linkListNoteIcon=new
LinkedList();
//先用Cursor获取内容,装入ArrayList,最后关闭cursor
try
{
if(mNotesCursor.moveToFirst())
{
do
{
//获取数据库rowID,以便操作数据库
String noteId=mNotesCursor.getString(0);
String noteContent=mNotesCursor.getString(1);
String noteDate=mNotesCursor.getString(2);
aryListNoteID.add(noteId);
aryListNoteContent.add(noteContent);
aryListNoteDate.add(noteDate);
linkListNoteIcon.add(getApplicationContext().getResources().getDrawable(R.drawable.icon));
}while(mNotesCursor.moveToNext());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally
{
mNotesCursor.close();
}
//删除一项
String RowId=aryListNoteID.get(info.position);
mDbHelper.delete(Long.parseLong(RowId));
//新增一项
mDbHelper.create(String,String);
//查询一项
//若该行id不为空,返回该行cursor,根据cursor读取内容,读取完毕关闭cursor
if (mRowId != null) {
Cursor cursor = mDbHelper.get(mRowId);
startManagingCursor(cursor);
try
{
mEditText.setText(cursor.getString(
cursor.getColumnIndexOrThrow(NotesDbAdapter.KEY_NOTE)
));
} catch (IllegalArgumentExceptione) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally
{
cursor.close();
}
}
//修改一项
mDbHelper.update(mRowId, String,String);
android sqlite 示例,android SQLite数据库使用示例相关推荐
- android sqlite assets,使用GreenDao加载assets下sqlite数据库的示例
应用场景 已有的.某类型数据(如行政区域关系)保存在sqlite中,sqlite数据库文件保存在assets目录下,APP需要读取该数据库中的数据 工具 实例 要点介绍 APP无法直接读取assets ...
- android spinner 按钮,android sqlite和spinner的用法示例
在此示例中,我们在单击按钮时添加了标签,并在微调器上显示了所有添加的标签.如上例所示,需要扩展SQLiteOpenHelper类以在sqlite上执行操作. 我们在DatabaseHandler类中重 ...
- sqlite数据库android使用教程,Android开发教程之 SQLite数据库的使用
在开发Android应用程序时经常需要存储数据,Android系统提供了SQLite数据库,还提供了SQLiteOpenHelper类,使我们可以很方便的操作数据库.通过一个例子来说明在Android ...
- Android 绿豆通讯录【 SQLite数据库(增删改查、展示数据) + ListView数据展示控件(展示所有数据) 】
前情提要:Android 数据库(SQLite) [简介.创建.使用(增删改查.事务.实战演练).数据显示控件(ListView.Adapter.实战演练-绿豆通讯录)] https://blog.c ...
- 基于sqlite的android数据库编程,Android编程之SQLite数据库操作方法详解
Android编程之SQLite数据库操作方法详解 发布时间:2020-09-07 12:33:04 来源:脚本之家 阅读:85 作者:低调小一 本文实例讲述了Android SQLite数据库操作方 ...
- Android 绿豆通讯录【SQLite数据库---数据库(增删改查、展示数据)】
前情提要:Android 数据库(SQLite) [简介.创建.使用(增删改查.事务.实战演练).数据显示控件(ListView.Adapter.实战演练-绿豆通讯录)] https://blog.c ...
- Android 第十一课 SQlite 数据库存储
Android 为了让我们能够更加方便的管理数据库,特意提供了一个SQLiteOpenHelper帮助类,通过借助这个类就可以非常简单的对数据库进行创建和升级. SQLiteOpenHelper是一个 ...
- Android数据库 分页查询,Android之怎么使用SQLite数据库(增、删、改、查、分页等)以及ListView显示数据(转)...
由于刚接触android开发,故此想把学到的基础知识记录一下,以备查询,故此写的比较啰嗦: 步骤如下: 一.介绍: 此文主要是介绍怎么使用android自带的数据库SQLite,以及把后台的数据用Li ...
- android:Android中用文件初始化sqlite数据库(zz)
很多时候在应用安装初始化时,需要创建本地数据库,同时为数据库添加数据,之后再从数据库中读取数据. 这里有2个思路 1.先在本地创建一个能支持android使用的sqlite数据库文件,启动时, ...
- Android数据存储之SQLite数据库存储
Android中每一个数据库对创建它的应用程序包套件来说都是私有的,默认情况下其他应用程序无法直接访问此私有数据库.所有的数据库文件存放在手机中的/data/data/package_name/dat ...
最新文章
- SQL Server 2000安装时不出现安装界面,进程中存在解决
- 分布式服务框架-原理与实践:14---流量控制-学习笔记(理论篇)
- 一作解读:EID-2017-宏基因组测序在新发腹泻病毒鉴定中的应用
- 3、ShardingSphere 之 Sharding-JDBC 实现水平分库
- CF1516E. Baby Ehab Plays with Permutations(组合数学)
- MFC----ListBox用法
- 苹果或将推中国特色版iPhone 削掉了Face ID改用屏幕指纹
- mybatis的动态sql学习注意点!!!
- 官宣!DolphinScheduler 毕业成为 Apache 软件基金会顶级项目
- vba excel 取得chart保存图片_保存Excel中的图片
- Windows中安装Electron说明
- sourceTree中git工作流使用
- cobar mysql_cobar mysql 高可用
- 放大电路中反馈及类型的判断
- 工业物联网技术体系包括哪些
- K-means(tri)利用三角不等式性质加速k-means
- T1005: 地球人口承载力估计(信息学一本通C++)
- 伺服驱动器的工作原理及伺服驱动器的常见接线方法
- CTF之PHP基础学习篇(一)
- javac java编译-g
热门文章
- three.js 把geometry转换成BufferGeometry
- SpringBoot使用Slf4j+Log4j2完成项目的日志记录
- Iterator主要有三个方法:hasNext()、next()、remove()详解
- java异常不懂,看不懂的异常提示啊
- source code怎么用_code-builder代码生成器
- python获取文件夹名_python基础之获取文件目录及名称
- Spring Cloud Alibaba —— Nacos Config 配置中心
- 史上最容易理解的暴力递归和动态规划~~
- 找对象年龄差多大最好_女生找对象到底最看重什么?调查了全球6万多名女性的结果是......
- pythonista_Pythonista20190325伤不起