加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

【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
01package?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=117 public?DBHelper(Context context) { 18 ????????//Context context,String name,CursorFactory factory,int version 19 //factory输入null,使用默认值 20 ????????super(context,DB_NAME,?null,DB_VERSION); 21 ????} 22 ????//数据第一次创建的时候会调用onCreate 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 ????????????????// 向表info中插入数据 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

实例: 会员信息管理

功能:1.查看数据库 2.清空数据库 3.增加会员 4.删除会员 5.更新会员 6.查找会员


?

数据库基类 – DBHelper.java

    推荐文章
      热点阅读