版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基於軟硬整合觀點F06_b观摩:ContentProvider架构與DB引擎移植方法(b)By 高煥堂基於軟硬整合觀點2、从Cursor接口谈起 在Android里定义了一个Cursor接口,让App( 如 Activity 或 Service 等 ) 能 透 过 此 Cursor接口来浏览DB里的各笔数据或内容。 如果搭配SQLite(数据库)引擎的话,就可设计一个类来实现这Cursor接口。其实, Android里已经撰写了这个实现类,名叫: SQLiteCursor。 于是,Cursor成为Client端浏览SQLite数据库内容的标准接口了。(Client端)(DB Server端)基
2、於軟硬整合觀點3、通用性接口Cursor的使用范例 范例架构 撰写一个DataPersist类,来开启DB,并提供query()函数;在执行query()时就创建一个SQLiteCursor对象,将其Cursor接口回传给Client端。 接下来,只要调用Cursor接口的函数,就能浏览DB里的内容了。 范例代码 由于Android平台里已经有了SQLite引擎了, 而且已经写好了SQLiteCursor实现类。因此在这范例里,我们只需要DataPersist类和Activity的子类,就行了。DataPersist.java代码/* - DataPersist.java*/ public c
3、lass DataPersist private static final String DATABASE_NAME = StudDB; private static final String TABLE_NAME = Student; private final int DB_MODE = Context.MODE_PRIVATE; private SQLiteDatabase db=null;public DataPersist(Context ctx) try db = ctx.openOrCreateDatabase(DATABASE_NAME,DB_MODE, null);catch
4、 (Exception e) Log.e(ERROR, e.toString(); try db.execSQL(drop table + TABLE_NAME); catch (Exception e) Log.e(ERROR, e.toString();return;db.execSQL(CREATE TABLE + TABLE_NAME + (+stud_no + TEXT, + stud_name + TEXT + );); String sql_1 = insert into + TABLE_NAME + (stud_no, stud_name) values(S101, Lily)
5、; String sql_2 = insert into + TABLE_NAME + (stud_no, stud_name) values(S102, Linda);String sql_3 = insert into + TABLE_NAME + (stud_no, stud_name) values(S103, Bruce);try db.execSQL(sql_1);db.execSQL(sql_2);db.execSQL(sql_3); catch (SQLException e)Log.e(ERROR, e.toString();return;public Cursor quer
6、y(String projection, String selection, StringselectionArgs, String sortOrder) Cursor cur = db.query(TABLE_NAME, projection, null, null,null, null, null);return cur;public void close()db.close();ac01.java代码/* - ac01.java*/ .public class ac01 extends ListActivity private static final String PROJECTION
7、 =new String stud_no, stud_name ;Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);DataPersist dp = new DataPersist(this);Cursor cur = dp.query(PROJECTION, null, null, null); ArrayListMap coll =new ArrayListMap(); Map item;cur.moveToFirst();while(!cur.isA
8、fterLast() item = new HashMap();item.put(c1, cur.getString(0) + , + cur.getString(1); coll.add(item);cur.moveToNext();dp.close();this.setListAdapter(new SimpleAdapter(this, coll, android.R.layout.simple_list_item_1, new String c1 ,new int android.R.id.text1);Overrideprotected void onListItemClick(ListView l, View v, int position, long id) finish(); 指令:DataPersist dp = new DataPersist(t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐厅转让合同
- 黑龙江省哈尔滨市南岗区第三中学2026届高中毕业年级第三次质量预测化学试题含解析
- 2025~2026学年河北石家庄市桥西区度第一学期期末适应性练习
- 2026客运资格考试题及答案
- 2026纪检干部考试题目及答案
- 2026江苏苏州市第五人民医院招聘医疗辅助岗位工作人员2人备考题库有答案详解
- 2026山西吕梁离石区零工市场公益性岗位人员招聘5人备考题库有完整答案详解
- 2026广东中山市博爱小学教师招聘1人备考题库附答案详解(b卷)
- 2026上海青年报社招聘4人备考题库(第一批)及一套参考答案详解
- 2026湖南怀化麻阳苗族自治县卫健系统招聘事业单位工作人员72人备考题库完整答案详解
- 2025中国融通集团信息技术有限公司社会招聘笔试参考试题附答案解析
- 内外墙抹灰安全技术交底
- 混凝土拌合物试验课件
- 病理学实验室质控措施指南
- 2025年6月浙江省高考历史试卷真题(含答案解析)
- DB41∕T 2474-2023 梅花玉 鉴定与分类
- 《婴幼儿游戏活动实施》课程标准(五年制高职专科)
- 车载光通信专题学习
- 《球墨铸铁可调式防沉降检查井盖安装及维护技术规程》
- 四级手术术前多学科讨论制度(2025年)
- 2025年贵州贵阳事业单位招聘考试卫生类医学检验专业知识试卷
评论
0/150
提交评论