Android数据存储
在Android 平台中数据存储有四种形式:
· 文件系统—— 可以把数据放到文件中保存起来,再使用 Java 的 IO 流技术实现对数据的读取。
· 嵌入式数据库 SQLite ——从性能编程的角度考虑,嵌入式数据库是个不错的选择,例如我们的联系人信息就是使用嵌入式数据库。
· 网络——如果我们的数据是海量的,还要通过复杂数学计算获得,访问的时候要严格安全限制,这种情况下这样的把数据放在网络上,例如天气信息、交通实时信息等。
· Shared Preferences ——可以存放少量的数据,主要用于保存系统设置参数,例如控件的状态、用户使用偏好(背景、字体)设置等,一般而言它不会用来存放联系人等应用程序的信息。
实现SQLite 数据库访问的DAO 代码
1 public WeigthDaoSQLiteImp(Context ctx) {
2
3 mDBHelper = new DBHelper(ctx);
4
5 }
6
7
8
9 @Override
10
11 public void create(long date, String input, String output, String weight,
12
13 String amountExercise) {
14
15
16
17 SQLiteDatabase db = mDBHelper.getWritableDatabase();
18
19 ContentValues values = new ContentValues();
20
21 values.put(SysConst.TABLE_FIELD_DATE, date);
22
23 values.put(SysConst.TABLE_FIELD_INPUT, input);
24
25 values.put(SysConst.TABLE_FIELD_OUTPUT, output);
26
27 values.put(SysConst.TABLE_FIELD_WEIGHT, weight);
28
29 values.put(SysConst.TABLE_FIELD_AMOUNTEXERCISE, amountExercise);
30
31 long rowId = db.insert(SysConst.TABLE_NAME, null, values);
32
33
34
35 }
36
37
38
39 @Override
40
41 public void delete(long date) {
42
43
44
45 SQLiteDatabase db = mDBHelper.getWritableDatabase();
46
47 String whereClause = SysConst.TABLE_FIELD_DATE + " = " + date;
48
49 long rowId = db.delete(SysConst.TABLE_NAME, whereClause, null);
50
51
52
53 }
54
55
56
57 @Override
58
59 public Cursor findAll() {
60
61
62
63 SQLiteDatabase db = mDBHelper.getReadableDatabase();
64
65
66
67 return db.query(SysConst.TABLE_NAME, new String[] {
68
69 SysConst.TABLE_FIELD_DATE, SysConst.TABLE_FIELD_INPUT,
70
71 SysConst.TABLE_FIELD_OUTPUT, SysConst.TABLE_FIELD_WEIGHT,
72
73 SysConst.TABLE_FIELD_AMOUNTEXERCISE }, null, null, null, null,
74
75 SysConst.TABLE_FIELD_DATE + " asc");
76
77 }
78
79
80
81 @Override
82
83 public Cursor findByPrimaryKey(long date) {
84
85
86
87 SQLiteDatabase db = mDBHelper.getReadableDatabase();
88
89 String whereClause = SysConst.TABLE_FIELD_DATE + " = " + date;
90
91 return db.query(SysConst.TABLE_NAME, new String[] {
92
93 SysConst.TABLE_FIELD_DATE, SysConst.TABLE_FIELD_INPUT,
94
95 SysConst.TABLE_FIELD_OUTPUT, SysConst.TABLE_FIELD_WEIGHT,
96
97 SysConst.TABLE_FIELD_AMOUNTEXERCISE }, whereClause, null, null,
98
99 null, SysConst.TABLE_FIELD_DATE + " asc");
100
101 }
102
103
104
105 @Override
106
107 public void modify(long date, String input, String output, String weight,
108
109 String amountExercise) {
110
111
112
113 SQLiteDatabase db = mDBHelper.getWritableDatabase();
114
115 String whereClause = SysConst.TABLE_FIELD_DATE + " = " + date;
116
117 ContentValues values = new ContentValues();
118
119 values.put(SysConst.TABLE_FIELD_INPUT, input);
120
121 values.put(SysConst.TABLE_FIELD_OUTPUT, output);
122
123 values.put(SysConst.TABLE_FIELD_WEIGHT, weight);
124
125 values.put(SysConst.TABLE_FIELD_AMOUNTEXERCISE, amountExercise);
126
127 long rowId = db.update(SysConst.TABLE_NAME, values, whereClause, null);
128
129 }
130
131
132
133 class DBHelper extends SQLiteOpenHelper {
134
135 ... ...
136
137 }
138
139
140
141 }
出自《Android开发案例驱动教程》
516inc是一支专注于Android,iOS平台企业级应用开发的技术团队,致力于做中国最棒的移动应用程序开发机构,提供最棒的Android,iOS企业级应用开发培训服务 企业培训和开发合作官方联系方式: 电话:15801577739Email:jylong06@163.com QQ:1575716557 516inc--专注-专业-专心!