职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 381|回复: 2

Android数据存储

[复制链接]
有烟没火 发表于 2011-8-20 10:26 | 显示全部楼层 |阅读模式
在Android平台......
哦,,,,借鉴一下。......
lovemobile......
嗯不错正在找答案呢!......


在Android 平台中数据存储有四种形式:

·           文件系统—— 可以把数据放到文件中保存起来,再使用 Java 的 IO 流技术实现对数据的读取。

·           嵌入式数据库 SQLite ——从性能编程的角度考虑,嵌入式数据库是个不错的选择,例如我们的联系人信息就是使用嵌入式数据库。

·           网络——如果我们的数据是海量的,还要通过复杂数学计算获得,访问的时候要严格安全限制,这种情况下这样的把数据放在网络上,例如天气信息、交通实时信息等。

·           Shared Preferences ——可以存放少量的数据,主要用于保存系统设置参数,例如控件的状态、用户使用偏好(背景、字体)设置等,一般而言它不会用来存放联系人等应用程序的信息。



实现SQLite 数据库访问的DAO 代码

public WeigthDaoSQLiteImp(Context ctx) {

     mDBHelper = new DBHelper(ctx);

}



@Override

public void create(long date, String input, String output, String weight,

          String amountExercise) {



     SQLiteDatabase db = mDBHelper.getWritableDatabase();

     ContentValues values = new ContentValues();

     values.put(SysConst.TABLE_FIELD_DATE, date);

     values.put(SysConst.TABLE_FIELD_INPUT, input);

     values.put(SysConst.TABLE_FIELD_OUTPUT, output);

     values.put(SysConst.TABLE_FIELD_WEIGHT, weight);

     values.put(SysConst.TABLE_FIELD_AMOUNTEXERCISE, amountExercise);

     long rowId = db.insert(SysConst.TABLE_NAME, null, values);



}



@Override

public void delete(long date) {



     SQLiteDatabase db = mDBHelper.getWritableDatabase();

     String whereClause = SysConst.TABLE_FIELD_DATE + " = " + date;

     long rowId = db.delete(SysConst.TABLE_NAME, whereClause, null);



}



@Override

public Cursor findAll() {



     SQLiteDatabase db = mDBHelper.getReadableDatabase();



     return db.query(SysConst.TABLE_NAME, new String[] {

               SysConst.TABLE_FIELD_DATE, SysConst.TABLE_FIELD_INPUT,

               SysConst.TABLE_FIELD_OUTPUT, SysConst.TABLE_FIELD_WEIGHT,

               SysConst.TABLE_FIELD_AMOUNTEXERCISE }, null, null, null, null,

               SysConst.TABLE_FIELD_DATE + " asc");

}



@Override

public Cursor findByPrimaryKey(long date) {



     SQLiteDatabase db = mDBHelper.getReadableDatabase();

     String whereClause = SysConst.TABLE_FIELD_DATE + " = " + date;

     return db.query(SysConst.TABLE_NAME, new String[] {

               SysConst.TABLE_FIELD_DATE, SysConst.TABLE_FIELD_INPUT,

               SysConst.TABLE_FIELD_OUTPUT, SysConst.TABLE_FIELD_WEIGHT,

               SysConst.TABLE_FIELD_AMOUNTEXERCISE }, whereClause, null, null,

               null, SysConst.TABLE_FIELD_DATE + " asc");

}



@Override

public void modify(long date, String input, String output, String weight,

          String amountExercise) {

   

     SQLiteDatabase db = mDBHelper.getWritableDatabase();

     String whereClause = SysConst.TABLE_FIELD_DATE + " = " + date;

     ContentValues values = new ContentValues();

     values.put(SysConst.TABLE_FIELD_INPUT, input);

     values.put(SysConst.TABLE_FIELD_OUTPUT, output);

     values.put(SysConst.TABLE_FIELD_WEIGHT, weight);

     values.put(SysConst.TABLE_FIELD_AMOUNTEXERCISE, amountExercise);

     long rowId = db.update(SysConst.TABLE_NAME, values, whereClause, null);      

}



class DBHelper extends SQLiteOpenHelper {

     ... ...

}



}
                                                                 出自《Android开发案例驱动教程》

叫我小乖 发表于 2011-8-20 10:27 | 显示全部楼层
哦,,,,借鉴一下。。。。。

叫我小乖 发表于 2011-8-20 10:27 | 显示全部楼层
lovemobile 写道
哦,,,,借鉴一下。。。。。

这是书中的内容,希望提出宝贵意见


您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-4-28 08:22 , Processed in 0.141649 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表