Android开发之使用SQLite存储数据的方法分析

本文实例讲述了Android开发之使用SQLite存储数据的方法。分享给大家供大家参考,具体如下:

前面已经说到了几种文件的操作如sharedreference,sdcard.实际上Android还提供了另外的存储方式那就是sqlite。只要学习过数据库掌握这个也是没问题的。下面就和我一起来弄一下这个吧。

1. 安装一个SQLiteDeveloper,这个用来打开android生成的数据库。软件随便搜索就能找到,后面导出数据库只需打开软件点击“数据库“----->"注册数据库"后面的操作最好自己摸索吧

2. 编写一个业务类先生成一个数据库和数据库表,这个类如下所示

package org.lxh.service; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteDatabase.CursorFactory; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteQueryBuilder; public class DBService extends SQLiteOpenHelper { //使用SQLiteOpenHelper创建数据库 public DBService(Context context) { super(context, "mldn.db", null, 1); } public void onCreate(SQLiteDatabase db) { String sql="create table student(userid Integer primary key autoincrement,username varchar(30))"; //生成数据库表的sql db.execSQL(sql); //生成表 } public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } }

数据库和表准备好之后就可以做下一步的工作了

3. 编写增删改查的业务类

package org.lxh.service; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.lxh.vo.Student; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; public class StudentService { private DBService db; public StudentService(Context context){ //构造方法实例化DBService db=new DBService(context); } public void savePerson(List<Student> stu){ String sql="insert into student(username) values(?)"; SQLiteDatabase database=db.getWritableDatabase(); //使用getWritableDatabase取得SQLiteDatabase Iterator<Student> it=stu.iterator(); while(it.hasNext()){ Student student=it.next(); database.execSQL(sql, new Object[]{student.getUsername()}); //执行插入 } } public void delete(int userid){ String sql="delete from student where userid=?"; SQLiteDatabase database=db.getWritableDatabase(); database.execSQL(sql, new Object[]{String.valueOf(userid)}); } public List<Student> fiandAll(){ List<Student> all=new ArrayList<Student>(); String sql="select * from student"; SQLiteDatabase database=db.getReadableDatabase(); //使用getReadableDatabase取得SQLiteDatabase Cursor cursor=database.rawQuery(sql, null); //得到游标,类似resultset Student stu; while(cursor.moveToNext()){ //移动游标 int id=cursor.getInt(cursor.getColumnIndex("userid")); String name=cursor.getString(cursor.getColumnIndex("username")); stu=new Student(); stu.setUserid(id); stu.setUsername(name); all.add(stu); } cursor.close(); //关闭游标 return all; } public int getCount(){ String sql="select count(*) from student"; SQLiteDatabase database=db.getReadableDatabase(); Cursor cursor=database.rawQuery(sql, null); cursor.moveToFirst(); return cursor.getInt(0); } }

需要注意的是getReadableDatabase和getWritableDatabase的用法,只是单纯的数据查询就使用getReadableDatabase,对数据进行修改操作就使用后者。另外需要注意sqlite的数据类型是没有任何作用的,只是为了程序员的互相合作。

4. 编写android的Junit

package org.lxh.db; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.lxh.service.DBService; import org.lxh.service.StudentService; import org.lxh.vo.Student; import android.test.AndroidTestCase; import android.util.Log; public class Test extends AndroidTestCase{ public void testSave(){ DBService db=new DBService(this.getContext()); db.getWritableDatabase(); } public void testSaveStudent(){ StudentService service=new StudentService(this.getContext()); Student stu=null; List<Student> stus=new ArrayList<Student>(); for(int i=0;i<10;i++){ stu = new Student(); stu.setUsername("陈亚峰"+i); stus.add(stu); } service.savePerson(stus); } public void delete(){ StudentService service=new StudentService(this.getContext()); service.delete(11); } public void findAll(){ StudentService service=new StudentService(this.getContext()); List<Student> all=service.fiandAll(); Iterator<Student> it=all.iterator(); while(it.hasNext()){ Student stu=it.next(); Log.i("Test", "id:"+stu.getUserid()+","+"username"+stu.getUsername()); } } public void findRows(){ StudentService service=new StudentService(this.getContext()); Log.i("Test",String.valueOf(service.getCount())); } }

执行之后生成了数据,id为11的记录已经被删除了

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android操作SQLite数据库技巧总结》、《Android数据库操作技巧总结》、《Android编程之activity操作技巧总结》、《Android文件操作技巧汇总》、《Android编程开发之SD卡操作方法汇总》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》、《Android视图View技巧总结》及《Android控件用法总结》

希望本文所述对大家Android程序设计有所帮助。

时间: 2024-09-10 16:35:06

Android开发之使用SQLite存储数据的方法分析的相关文章

Android使用Sqlite存储数据用法示例_Android

本文实例讲述了Android使用Sqlite存储数据的方法.分享给大家供大家参考,具体如下: 一般在开发程序中,经常使用数据的存储功能,如在使用Delphi开发程序时,存储程序的简单设置的INI文件,在C#开发中有时也需要存储简单的设置,个人一般存储在XML中,也在INI中存储过,但是不如XML使用方便,那么这些都是简单的数据存储功能,在Android中也支持这样的文件存储,但是现在这里主要说的还是使用SQLite存储数据,SQLite是一种跨平台的数据库,是单文件式的,如咱们平常见的最多的Ac

Android使用Sqlite存储数据用法示例

本文实例讲述了Android使用Sqlite存储数据的方法.分享给大家供大家参考,具体如下: 一般在开发程序中,经常使用数据的存储功能,如在使用Delphi开发程序时,存储程序的简单设置的INI文件,在C#开发中有时也需要存储简单的设置,个人一般存储在XML中,也在INI中存储过,但是不如XML使用方便,那么这些都是简单的数据存储功能,在Android中也支持这样的文件存储,但是现在这里主要说的还是使用SQLite存储数据,SQLite是一种跨平台的数据库,是单文件式的,如咱们平常见的最多的Ac

Android开发使用 SQLite 存储数据

一.创建SQLite数据库和表 我们可以通过SQLiteDatabase.openOrCreateDatabase()来创建一个数据库实例. SQLiteDatabase db = openOrCreateDatabase(dbName, MODE_PRIVATE, null);// openOrCreateDatabase(String name, int mode, CursorFactory factory)// 第一个参数为创建数据库的名称// 第二个参数为创建数据库的权限,其权限同内部

android缓存处理-Android开发中客户端如何进行数据的存储

问题描述 Android开发中客户端如何进行数据的存储 Android开发中客户端如何进行数据的存储以达到数据的缓存来减少与服务端的交互次数,并设置缓存时间?(求大神指导,最好有完整的代码) 十分需要!求帮助! 解决方案 推荐在客户端使用sqlite来存放本地的数据.因为是数据库,所以很多底层的事情不用考虑了.要放缓存,直接建立一个字段,获取的时间,这样判断下,如果超过,就再次访问服务器获取.

Android开发中使用sqlite实现新闻收藏和取消收藏的功能_Android

 之前学习oracle,简单的认为数据库只存在服务器端,学习安卓之后才发现原来android和Ios本身是"携带"数据库的--SQLite,是轻量级的.嵌入式的.关系型数据库,是Android.IOS等广泛使用的的数据库系统.用于存储本地的一直状态.刚写出来一个实现新闻收藏的功能,写出来供大家参考. 在Android中我们通过SQLiteDatabase这个类的对象操作SQLite数据库.由于SQLite数据库并不需要像C/S数据库那样建立连接以及身份验证的特性,以及SQLite数据库

Android开发中使用sqlite实现新闻收藏和取消收藏的功能

之前学习oracle,简单的认为数据库只存在服务器端,学习安卓之后才发现原来android和Ios本身是"携带"数据库的--SQLite,是轻量级的.嵌入式的.关系型数据库,是Android.IOS等广泛使用的的数据库系统.用于存储本地的一直状态.刚写出来一个实现新闻收藏的功能,写出来供大家参考. 在Android中我们通过SQLiteDatabase这个类的对象操作SQLite数据库.由于SQLite数据库并不需要像C/S数据库那样建立连接以及身份验证的特性,以及SQLite数据库单

Android在不使用数据库的情况下存储数据的方法_Android

本文实例讲述了Android在不使用数据库的情况下存储数据的方法.分享给大家供大家参考.具体分析如下: 在有些情况下我们不需要构建数据库,但是却要将一些数据保存起来,等到程序下次运行时调用,那么我们如何做呢? 1. 引用命名空间 import android.content.SharedPreferences; 2. 定义一个新类PictureGlobalDef,用来存储数据,在该类中定义: public final static String APPSetting = "SettingFile

Android在不使用数据库的情况下存储数据的方法

本文实例讲述了Android在不使用数据库的情况下存储数据的方法.分享给大家供大家参考.具体分析如下: 在有些情况下我们不需要构建数据库,但是却要将一些数据保存起来,等到程序下次运行时调用,那么我们如何做呢? 1. 引用命名空间 import android.content.SharedPreferences; 2. 定义一个新类PictureGlobalDef,用来存储数据,在该类中定义: public final static String APPSetting = "SettingFile

Android编程使用sax解析xml数据的方法详解

本文实例讲述了Android编程使用sax解析xml数据的方法.分享给大家供大家参考,具体如下: 随着技术的发展,现在的web已经和以前不同了.web已经逐渐像移动的方向倾斜,作为程序员的确应该拓展一下自己的知识层面.学习各方面的知识,今天就接着前几天的弄一下Android的xml解析,这次就使用sax的方式解析xml.下面就一步一步的来做吧. 1. 编写一个简单的xml <?xml version="1.0" encoding="UTF-8"?> &l