android使用sqlite存储数据

Android Studio—— SQLite数据库存储 在 Android 开发中,我们需要存储大量的数据,用户信息、聊天信息、本地记录等等.而 Android 系统提供了 SQLite 数据库存储,SQLite 数据库是一款轻型的数据库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎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使用已有sqlite数据库——内部存储 ——热爱开源,乐于分享 Android使用已有sqlite数据库——内部存储上一篇介绍了如何在手机sd卡上使用已有的sqlite数据库,但是如果手机没有sd卡这个外部存储,则怎么实现呢?今天讲述使用Android手机内部存储使用已有的sqlite数据库。一、拷贝数据库文件到当前工程拷贝到res/raw下: 二、代码:这是我在利用Android自动提示框实现的模糊匹配的项目中加入了使用内部存储读写已 阅读详情

相关推荐

android 简单通讯录

android 通讯录源码,实现一些常用的功能

Android 使用SQLite保存数据

对于重复数据或结构化数据(例如联系信息),将数据保存到数据库是理想选择。软件包中提供了在 Android 上使用数据库所需的 API。本篇文章介绍在 Android 上使用SQLite数据库。SQL 数据库的主要原则之一是架构,即数据库组织方式的正式声明。架构反映在你用于创建数据库的 SQL 语句中。您可能会发现创建伴随类(称为协定类)很有用,该类以系统化、自记录的方式明确指定了架构的布局。协定类是定义 URI、表和列名称的常量的容器。通过协定类,您可以在同一软件包的所有其他类中使用相同的常量。

tracy的博客 1975

ZYNQ千兆网UDP通信实战:从Vivado配置到LWIP优化全流程(附避坑指南)

本文详细介绍了在ZYNQ平台上实现千兆以太网UDP通信的全流程,包括Vivado硬件配置、LWIP协议栈优化及实战代码示例。通过关键参数调整和性能优化,系统吞吐量可提升至850Mbps以上,适用于高速网络通信场景。

weixin_29161785的博客 230

Android学习——SQLite数据库存储

SQLite数据库可以存储应用程序中的大量数据,并对数据进行管理和维护。

weixin_66158110的博客 2573

电力电子技术进阶:从基础到实战的完整学习路径

本文系统阐述了电力电子技术从基础到实战的完整学习路径。首先解析了电力电子作为“电能魔术师”的核心作用,随后深入剖析了数学工具、电路电磁场与半导体器件三大基础支柱。文章重点讲解了DC-DC、DC-AC、AC-DC等核心变换拓扑,并探讨了从经典PID到现代模型预测控制(MPC)的控制策略。最后,分享了硬件设计、软件调试、电磁兼容(EMC)等实战经验与前沿趋势,为学习者提供了清晰的进阶指南。

weixin_29204205的博客 446

ULN2003驱动28BYJ-48步进电机详解(附:51 32代码讲解)

本文介绍了28BYJ-48步进电机的驱动原理以及注意事项,并展示了极简 32 51驱动代码

qq_41818650的博客 1万+

Android之SQlite存储

使用嵌入式关系型SQLite数据库存储数据   除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据。 在Android平台上,集成了一个嵌入式关系型数据库—SQLite, 1、SQLite3支持 NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型虽然只有五种,但实际上s...

不积跬步 无以至千里 不积小流 无以成江海 559

MATLAB双目相机标定:从工具箱实战到参数精解

本文详细讲解了使用MATLAB进行双目相机标定的完整实战流程与参数精解。从拍摄合格的棋盘格图像、设置关键参数(如径向畸变系数),到分析重投影误差、优化结果并正确导出和使用内外参,提供了从操作到原理的全面指导,帮助读者为立体视觉应用奠定精准基础。

weixin_29041767的博客 257

Android数据存储(二)——SQLite

增: insert into tablename(属性1,属性2,...) values(value1,value2,...)cd /data/data/projectPackage/databases 进入包含数据库文件的文件夹。数据保存的路径:/data/data/projectPackage/databases/xxx.db。sqlite3 xxx.db 使用sqlite3命令连接指定的数据库文件,进入连接模式。应用运行需要保存一系列有一定结构的数据,比如:公司员工信息。

m0_65627943的博客 2393

Codex 桌面端自定义模型列表为空 — 修复记录

摘要:Codex桌面端首次启动正常,但二次启动后出现中文界面且模型列表丢失。问题根源在于Electron的Chromium持久化状态损坏,导致UI渲染异常。解决方案包括:1) 将config.toml中的模型路径改为绝对路径;2) 删除损坏的状态文件.codex-global-state.json;3) 清除Chromium用户数据目录AppData\Roaming\Codex\web。验证显示修改后模型功能恢复正常,重装无效的原因是卸载未清除用户数据目录。

猿小白的博客 1153

自然语言处理:长文本场景下的关键词抽取实践

自然语言处理:长文本场景下的关键词抽取实践

丨汀、的博客 2076

Android 如何使用SQLite保存数据

由于在数据库关闭时,调用 getWritableDatabase() 和 getReadableDatabase() 的成本比较高,因此只要您有可能需要访问数据库,就应保持数据库连接处于打开状态。如需从数据库中读取信息,请使用 query() 方法,向其传递您的选择条件和所需的列。该方法合并了 insert() 和 update() 元素,不过列表定义了要提取的数据(“预测值”),而不是要插入的数据。就像您在设备的内部存储空间中保存文件一样,Android 会将您的数据库存储在您应用的私有文件夹中。

chinaherolts2008的博客 159

医院批量排班实战指南(三)日期列表生成与时段批量操作

在上一篇《批量排班功能实现指南(二):日期与时段设置》中,我们完成了日期范围选择和重复规则配置的界面搭建,实现了从第一步到第二步的跳转功能。现在我们已经可以选择日期范围和重复规则,但还缺少最关键的功能——根据规则生成日期列表并进行时段配置。本篇将继续深入批量排班的核心功能——日期列表生成与时段批量操作。根据日期范围和重复规则智能生成日期列表为每个日期配置上午、下午、夜诊时段批量时段操作提升配置效率日期列表的展示与管理。

低代码布道师的博客 1345

安卓 sqlite数据存入mysql_android调用本地数据库存储数据sqlite

【实例简介】android调用本地数据库存储数据sqlite【实例截图】【核心代码】private View.OnClickListener save2 = new View.OnClickListener() {@Overridepublic void onClick(View v) {// 添加数据进数据库Textweek=tvWeek.getText().toStri...

weixin_32063287的博客 218

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

安卓 sqlite数据存入mysql_详解Android数据存储—使用SQLite数据库

SQLite是Android自带的关系型数据库,是一个基于文件的轻量级数据库。Android提供了3种操作数据的方式,SharedPreference(共享首选项)、文件存储以及SQLite数据库。SQLite数据库文件被保存在/data/data/package_name/databases目录下。一、创建和删除表1.创建表创建表的SQL语句为:CREATE TABLE userInfo_bri...

weixin_42340136的博客 623

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

安卓开发(三)数据存储机制、文件IO、SQLite

文章目录SharedPreferences SharedPreferences

芸兮的博客 1814

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

安卓 sqlite数据存入mysql_Android数据存储——SQLite数据库存储

一 创建数据库1.创建一个 “数据库管理器” 实体类来继承 SQLiteOpenHelper抽象类。其中需要重写两个方法用于创建数据库和升级数据库:onCreate()和onUpgrade()。2.数据库管理器的构造方法接收四个参数。第一个是context(环境),第二个是数据库名,第三个是查询数据返回的自定义的cursor、一般都是null,第四个是数据库的版本号。3.数据库管理器实例的两种方法...

weixin_42102401的博客 428

Android数据存储、文件存储、SQLite数据库简单使用、 sharedPreferences存储(五)

文章目录5 数据存储5.1 数据的存储方式5.2 文件存储5.2.1 将数据存入文件中5.2.2 从文件中读取数据5.2.3 实战演练-保存QQ账号和密码5.3 sharedPreferences存储5.3.1 将数据存入SharedPreferences中5.3.2 读取和删除数据5.3.3 实战演练—保存QQ账号和密码5.4 SQlite数据库存储5.4.1 SQLite数据库的创建5.4.2 SQLite数据库的基本操作5.4.3 使用sql语句进行数据操作5.4.4 SQLite数据库中的事务5.4

www?的博客 6668

安卓 sqlite数据存入mysql_android SQLite数据库存储

SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。例如:可以在Integer类型的字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值。但有一种情况例外:定义为INTEGERPRIMARYKEY的字段只能存储64位整数,当向这种字段保存除整数以外的数据时,将会产生错误。另外,SQLite在解析CREATETAB...

weixin_42549496的博客 215

Android的数据库SQLite进行数据存储与SharePreferences存储

Android的数据库SQLite进行数据存储与SharePreferences存储

徐大大的博客 4774

android 本地存储数据之sqlite

        最近写了一个抽签值日的程序需要用到数据库来存储数据,如果放到数据库中还要建表,还需要连网,本人感觉没有必要,所以就选择了本地存储sqlite的方式,来记录一下,方便以后查看 先创建一个工具类DateBaseHelper public class StuDBHelper extends SQLiteOpenHelper{     public final static Strin...

wkh11的博客 567

android:四种存储数据方式SharedPreferences、SQLite、Content Provider、File

以下摘自 博客园---熊猫82的文章(有改动):(http://www.cnblogs.com/wisekingokok/archive/2011/09/16/2177833.html)   ================================SharedPreferences ↓↓↓============================  除了SQLite数据库外,Share

535

Android数据存储之Sqlite数据库存储

Android数据存储之Sqlite数据库存储 1.继承SQLiteOpenHelper 创建一个用于管理数据库创建和版本管理的助手类。 package com.androidlearning.datastore_88; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.u

jiu_yu的博客 4368

【Android -- 数据存储】使用 SQLite 存储数据

本篇博文主要介绍第一种方式,通过 SQLite 存储数据。

Kevin Learn Android 1651

Android数据存储之SQLite存储

在上一篇文章:http://blog.youkuaiyun.com/qq_34942689/article/details/65633451 中简单的介绍了一下Android中用于数据存储的一些方式,上一篇文章中介绍了SharedPreferences的使用以及我个人的一些封装,接下来呢就来介绍一下Android存储提供的数据存储方式的第二个SQLite数据存储。 SQLite是一种转为嵌入式的轻量级的数据

qq_34942689的博客 903
上一篇: 使用cxf开发webservice
下一篇: SQLite的事务处理和listview的使用
青蛙小王子
博客等级 码龄16年 239粉丝 311原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值