【Android数据存储】SQLite使用实例(附源码)
发布时间:2020-12-12 19:03:25 所属栏目:百科 来源:网络整理
导读:实例: 会员信息管理 功能:1.查看数据库 2.清空数据库 3.增加会员 4.删除会员 5.更新会员 6.查找会员 ? 数据库基类 – DBHelper.java 01 package ? com.wirelessqa.sqlite; 02 ? 03 import ? android.content.Context; 04 android.database.sqlite.SQLiteDat
实例: 会员信息管理
功能:1.查看数据库 2.清空数据库 3.增加会员 4.删除会员 5.更新会员 6.查找会员
 ?
数据库基类 – DBHelper.java
|
01
package
?com.wirelessqa.sqlite;
02
?
03
import?android.content.Context;
04
android.database.sqlite.SQLiteDatabase;
05
android.database.sqlite.SQLiteOpenHelper;
06
android.util.Log;
07
?
08
/**
09
?
* DBHelper继承了SQLiteOpenHelper,作为维护和管理数据库的基类
10
* @author bixiaopeng 2013-2-16 下午3:05:52
11
*/
12
public?class
?DBHelper??
extends
?SQLiteOpenHelper{
13
14
????static
?final
?String DB_NAME =?
"wirelessqa.db"
;
15
String DB_TABLE_NAME =?"info"
;
16
private?final
?int
?DB_VERSION=
1
17
public?DBHelper(Context context) {
18
????????
19
//factory输入null,使用默认值
20
????????super
(context,DB_NAME,?
null
,DB_VERSION);
21
????}
22
????
23
????@Override
24
void?onCreate(SQLiteDatabase db) {??????
25
//创建表
26
??????????db.execSQL(
"CREATE TABLE IF NOT EXISTS info"
?+?
27
????????????????????"(_id INTEGER PRIMARY KEY AUTOINCREMENT,name VARCHAR,age INTEGER,website STRING,weibo STRING)"
);
28
Log.i(WirelessQA.TAG,?"create table"
);
29
30
//数据库第一次创建时onCreate方法会被调用,我们可以执行创建表的语句,当系统发现版本变化之后,会调用onUpgrade方法,我们可以执行修改表结构等语句
31
32
onUpgrade(SQLiteDatabase db,monospace!important; font-size:1em!important; border:0px!important; line-height:1.1em!important; margin:0px!important; outline:0px!important; float:none!important; vertical-align:baseline!important; position:static!important; left:auto!important; top:auto!important; right:auto!important; bottom:auto!important; height:auto!important; width:auto!important; min-height:auto!important">oldVersion,monospace!important; font-size:1em!important; border:0px!important; line-height:1.1em!important; margin:0px!important; outline:0px!important; float:none!important; vertical-align:baseline!important; position:static!important; left:auto!important; top:auto!important; right:auto!important; bottom:auto!important; height:auto!important; width:auto!important; min-height:auto!important">newVersion) {
33
//在表info中增加一列other
34
//db.execSQL("ALTER TABLE info ADD COLUMN other STRING");?
35
????????Log.i(
"WIRELESSQA"
"update sqlite "
+oldVersion+
"---->"
+newVersion);
36
}
37
38
}
数据库业务操作 – DBManager.java
001
002
003
java.util.ArrayList;
004
java.util.List;
005
006
android.content.ContentValues;
007
008
android.database.Cursor;
009
android.database.sqlite.SQLiteDatabase;
010
011
012
013
*DBManager是建立在DBHelper之上,封装了常用的业务方法
014
* @author bixiaopeng 2013-2-16 下午3:06:26
015
016
DBManager {
017
018
private?DBHelper?????? helper;
019
SQLiteDatabase db;
020
021
DBManager(Context context){
022
helper =?new
?DBHelper(context);
023
db = helper.getWritableDatabase();
024
025
026
????027
?????* 向表info中增加一个成员信息
028
*
029
* @param memberInfo
030
*/
031
add(List<MemberInfo> memberInfo) {
032
db.beginTransaction();
033
try?{
034
????????????for
?(MemberInfo info : memberInfo) {
035
????????????????"------add memberInfo----------"
036
"/"
?+ info.age +?
+ info.website +?
+ info.weibo);
037
????????????????
038
"INSERT INTO info VALUES(null,?,?)"Object[] { info.name,info.age,info.website,
039
????????????????????????info.weibo });
040
????????????041
db.setTransactionSuccessful();
042
}?finally
?{
043
db.endTransaction();
044
045
046
047
/**
048
* @param _id
049
* @param name
050
* @param age
051
* @param website
052
* @param weibo
053
054
add(_id,monospace!important; font-size:1em!important; border:0px!important; line-height:1.1em!important; margin:0px!important; outline:0px!important; float:none!important; vertical-align:baseline!important; position:static!important; left:auto!important; top:auto!important; right:auto!important; bottom:auto!important; height:auto!important; width:auto!important; min-height:auto!important">age,String website,String weibo) {
055
"------add data----------"056
ContentValues cv =?ContentValues();
057
// cv.put("_id",_id);
058
cv.put("name"
059
"age"
061
"weibo"
063
+ age +?
+ website +?
+ weibo);
064
065
066
067
* 通过name来删除数据
068
069
070
071
delData(String name) {
072
// ExecSQL("DELETE FROM info WHERE name ="+"'"+name+"'");
073
String[] args = { name };
074
db.delete(DBHelper.DB_TABLE_NAME,monospace!important; font-size:1em!important; color:blue!important; border:0px!important; line-height:1.1em!important; margin:0px!important; outline:0px!important; float:none!important; vertical-align:baseline!important; position:static!important; left:auto!important; top:auto!important; right:auto!important; bottom:auto!important; height:auto!important; width:auto!important; min-height:auto!important">"name=?"
075
"delete data by "?+ name);
076
077
078
079
080
* 清空数据
081
082
clearData() {
083
ExecSQL("DELETE FROM info"
084
"clear data"085
086
087
088
* 通过名字查询信息,返回所有的数据
089
*
090
* @param name
091
092
ArrayList<MemberInfo> searchData(String name) {
093
String sql =?"SELECT * FROM info WHERE name ="
?+?
"'"
?+ name +?
"'"
094
return?ExecSQLForMemberInfo(sql);
095
096
097
ArrayList<MemberInfo> searchAllData() {
098
"SELECT * FROM info"099
ExecSQLForMemberInfo(sql);
100
101
102
103
* 通过名字来修改值
104
105
* @param raw
106
* @param rawValue
107
* @param whereName
108
109
updateData(String raw,String rawValue,String whereName) {
110
"UPDATE info SET "?+ raw +?
" ="
?" "
?+ rawValue +?
" WHERE name ="
?+ whereName
111
?????????????????????112
ExecSQL(sql);
113
114
115
116
117
* 执行SQL命令返回list
118
119
* @param sql
120
* @return
121
122
ArrayList<MemberInfo> ExecSQLForMemberInfo(String sql) {
123
ArrayList<MemberInfo> list =?ArrayList<MemberInfo>();
124
Cursor c = ExecSQLForCursor(sql);
125
while?(c.moveToNext()) {
126
MemberInfo info =?MemberInfo();
127
info._id = c.getInt(c.getColumnIndex("_id"
));
128
info.name = c.getString(c.getColumnIndex());
129
info.age = c.getInt(c.getColumnIndex(130
info.website = c.getString(c.getColumnIndex(131
info.weibo = c.getString(c.getColumnIndex(132
list.add(info);
133
134
c.close();
135
list;
136
137
138
139
* 执行一个SQL语句
140
141
142
143
ExecSQL(String sql) {
144
145
db.execSQL(sql);
146
"execSql: "
147
catch?(Exception e) {
148
Log.e("ExecSQL Exception"
149
e.printStackTrace();
150
151
152
153
154
* 执行SQL,返回一个游标
155
156
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!