f06_b_观摩_架构与db引擎移植方法_ok_W_第1页
f06_b_观摩_架构与db引擎移植方法_ok_W_第2页
f06_b_观摩_架构与db引擎移植方法_ok_W_第3页
f06_b_观摩_架构与db引擎移植方法_ok_W_第4页
f06_b_观摩_架构与db引擎移植方法_ok_W_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论