android数据存取的四种方式
Android系统下有四种数据的存在形式,分别是SQLite,SharePreference,File,ContentProvider。
一:特性介绍:
SQLite:对于大多数开发者而言,这应该是大家非常熟悉的数据存储方式了吧。我就不多做介绍了。
在Android中使用SQLite进行数据存取也不复杂:与以前我们做的java不同的是,Android中需要一个处理类SQLiteOpenHelper。
下面我们通过一个简单的事例代码来说明。
1-------------SQLite
新建一个类MySqlHanlder.java继承至SQLiteOpenHelper,实现所有的方法并生成构造函数。
- public class MyDataHelper extends SQLiteOpenHelper {
- public MyDataHelper(Context context, String name, CursorFactory factory,
- int version) {
- super(context, name, factory, version);
- // TODO Auto-generated constructor stub
- }
- @Override
- public void onCreate(SQLiteDatabase db) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- // TODO Auto-generated method stub
- }
- }
这里是一个程序入口测试类:MainActitvity.java
- public class MainActitvity extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- MyDataHelper data = new MyDataHelper(MainActitvity.this,"zhao",null, 1);//创建一个名叫zhao的数据库
- final SQLiteDatabase db = data.getWritableDatabase();
- String createtable = "create table if not exists student(mane varchar(30),age integer)";
- db.execSQL(createtable);//在zhao中创建一个叫做student的表
- final String insert = "insert into student values(?,?)";
- final String query = "select mane from student";
- //写入数据
- Button writebtn = (Button)findViewById(R.id.writedata);
- writebtn.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // 在zhao中插入三条数据
- db.execSQL(insert, new Object[]{"xiaoming",10});
- db.execSQL(insert, new Object[]{"xiaozhang",10});
- db.execSQL(insert, new Object[]{"kankan",10});
- }
- });
- //读取数据
- Button readbtn = (Button)findViewById(R.id.readdata);
- readbtn.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- Cursor cursor = db.rawQuery(query, null);
- while (cursor.moveToNext()) {
- Toast.makeText(MainActitvity.this,cursor.getString(0),3000).show();//得到第一条数据
- }
- }
- });
- }
- }
main.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <Button
- android:id="@+id/writedata"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Write"
- ></Button>
- <Button
- android:id="@+id/readdata"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="Read"
- ></Button>
- </LinearLayout>
2-------------SharePreference
(我们也通常称之为小文件,它的本质是一个xml文件,常用来存一些简单的参数)用法非常简单:
- public class MainActitvity extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- //创建zhao.xml文件
- SharedPreference sp = this.getSharedPreferences("zhao",MODE_APPEND);
- //获取编辑对象
- SharedPreferences.Editor edit = sp.edit();
- //添加值
- edit.putString("user1","xiaoli");
- edit.putInt("age",20);
- //提交
- edit.commit();
- }
- }
3-------------File(I/O)这应该是每一个Java程序员非常熟悉的数据存取方式了吧,用IO方式存取数据就不仅仅局限与
一些字符串了,图片,音乐,文档等等文件都可以通过IO方式来。这里我就举一个在Android开发中常用的IO操作:
呵呵,请各位参考我的另一篇博客:---------Android从网络加载图片
4.------------ContentProvider
大家都知道:上面三种数据都是一个程序私有的,它们存在于程序的安装文件中,因此它们不能够被其他的应用程序共享。
所以这时就有ContentProvider来实现共享数据的功能了,ContentProvider的标准解释是:“不同程序间进行数据交换的标准API”,
比如:我们新建一个工程去获取系统联系人列表,或者去获取Camera下的照片,录像等,就需要使用这些程序提供的ContentProvider接口来实现“桥梁”的功能。参考博客--------ContentProvider应用实例
也希望各位学习批评指正。
android数据存取的四种方式的更多相关文章
- android 数据存储的四种方式.
Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File.由于Android系统中,数据基本都是私有的的,都是存放 ...
- 实现web数据同步的四种方式
http://www.admin10000.com/document/6067.html 实现web数据同步的四种方式 1.nfs实现web数据共享 2.rsync +inotify实现web数据同步 ...
- linux下实现web数据同步的四种方式(性能比较)
实现web数据同步的四种方式 ======================================= 1.nfs实现web数据共享2.rsync +inotify实现web数据同步3.rsyn ...
- android 数据存储的几种方式
总体的来讲,数据存储方式有三种:一个是文件,一个是数据库,另一个则是网络.其中文件和数据库可能用的稍多一些,文件用起来较为方便,程序可以自己定义格式:数据库用起稍烦锁一些,但它有它的优点,比如在海量数 ...
- [转]JSon数据解析的四种方式
转至http://blog.csdn.net/enuola/article/details/7903632 作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式. 有的js ...
- Android数据存储的三种方式:SharePreferences , file , SQLite
(1)SharePreferences: 存入: SharedPreferences setter = this.getSharedPreferences("spfile", 0) ...
- ASP.NET MVC之从控制器传递数据到视图四种方式(一)
前言 本系列开始着手讲述ASP.NET MVC,也算是自己对基础的回顾以及进一步深入学习,保证每天发表一篇该系列文章,关于基本知识则不再叙述,园子有关文章不胜枚举,这一系列若有叙述不当或错误之处,欢迎 ...
- ASP.NET MVC之从控制器传递数据到视图四种方式
前言 本系列开始着手讲述ASP.NET MVC,也算是自己对基础的回顾以及进一步深入学习,保证每天发表一篇该系列文章,关于基本知识则不再叙述,园子有关文章不胜枚举,这一系列若有叙述不当或错误之处,欢迎 ...
- web前后台数据交互的四种方式(转)
1.利用cookie对象 Cookie是服务器保存在客户端中的一小段数据信息.使用Cookie有一个前提,就是客户端浏览器允许使用Cookie并对此做出相应的设置.一般不赞成使用Cookie. (1 ...
随机推荐
- 使用Spring框架入门二:基于注解+XML配置的IOC/DI的使用
一.简述 本文主要讲使用注解+xml配合使用的几种使用方式.基础课程请看前一节. 二.步骤 1.为Pom.xml中引入依赖:本例中使用的是spring-context包,引入此包时系统会自动导入它的依 ...
- SQLServer中查询表结构(表主键 、列说明、列数据类型、所有表名)的Sql语句
SQLServer中查询表结构(表主键 .列说明.列数据类型.所有表名)的Sql语句 1.查询数据库中的所有表名称: SELECT name FROM SysObjects Where XType=' ...
- ES6学习笔记十:模块的导入、导出
一:模块导入 1) import { 要导入的属性.方法民 } from '模块路径'; 2)该种方法需要有配置文件,指明模块所在路径 import { 要导入的属性.方法民 } from '模块名' ...
- system.DateTime ToDateTime(System.String)”,因此该方法无法转换为存储表达式-解决方法
LINQ to Entities的lambda表达式中如果需要转换时间及各种时间格式请使用System.Data.Entity的类DbFunctions的各种方法 例如: IsOverdue = db ...
- SpringCloud stream连接RabbitMQ收发信息
百度上查的大部分都是一些很简单的单消费者或者单生产者的例子,并且多是同一个服务器的配置,本文的例子为多服务器配置下的消费生产和消费者配置. 参考资料:https://docs.spring.io/sp ...
- 8、java5线程池之动态缓存线程池newCachedThreadPool
JDK文档描述 创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们.对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能.调用 execute 将重用以前构造的线程 ...
- ssh无法登录,提示Pseudo-terminal will not be allocated because stdin is not a terminal.
当远程通过ssh登录主机时出现Pseudo-terminal will not be allocated because stdin is not a terminal. 错误 字面意思是伪终端将 ...
- NRF24L01无线模块的使用
NRF2401芯片pin定义 NRF24L01模块pin定义 VCC 脚接电压范围为 1.9V~3.6V 之间, 不能在这个区间之外, 超过 3.6V 将会烧毁模块, 推荐电压 3.3V 左右 除电源 ...
- 在spring boot微服务中使用JWS发布webService
发布时间:2018-11-22 技术:Java+spring+maven 概述 在springboot微服务中使用JWS发布webService,在服务启动时自动发布webservice接口. ...
- Mac OS X上安装配置apache服务器
说明:Mac在安装完成Mac系统的时候它已经自带了apache服务器,接下来就是配置和将它启动运行了.那么接下来要做的事情就是: 1.配置apache的配置文件 2.设置虚拟主机 启动并查看apach ...