首页 Android 范例-个人理财工具 之二 启动时初始化数据

Android 范例-个人理财工具 之二 启动时初始化数据

举报
开通vip

Android 范例-个人理财工具 之二 启动时初始化数据Android 范例-个人理财工具 之二 启动时初始化数据 Android 实例-个人理财工具 之二 启动时初始化数据 sqlite 是嵌入式SQL数据库引擎SQLite(SQLite Embeddable SQL Database Engine)的 一个扩展。SQLite是一个实现嵌入式SQL数据库引擎小型C语言库(C library),实现了独 立的,可嵌入的,零配置的SQL数据库引擎。特性包括:事务操作是原子,一致,孤立,并 且持久的,即使在系统崩溃和电源故障之 后。 零配置——不需要安装和管理。 实现了...

Android 范例-个人理财工具 之二 启动时初始化数据
Android 范例-个人理财工具 之二 启动时初始化数据 Android 实例-个人理财工具 之二 启动时初始化数据 sqlite 是嵌入式SQL数据库引擎SQLite(SQLite Embeddable SQL Database Engine)的 一个扩展。SQLite是一个实现嵌入式SQL数据库引擎小型C语言库(C library),实现了独 立的,可嵌入的,零配置的SQL数据库引擎。特性包括:事务操作是原子,一致,孤立,并 且持久的,即使在系统崩溃和电源故障之 后。 零配置——不需要安装和管理。 实现了绝大 多数SQL92标准。 我在多年前就关注sqlite的发展,非常看好sqlite的前景,因为在移动,嵌入式的应用里 面,sqlite具有非常好的特性来满足需求. 早在symbian 9.0 之前,openc 出来后,我就研究sqlite到symbian的移植.后来symbian9.3 nokia就已经集成了sqlite. 至今j2me还不支持sqlite,可以说是个遗憾. 现在我们来看看android sqlitedatabase 包里面的关键api static SQLiteDatabase openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory factory) 打开数据库 Cursor query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit) 执行查询SQL void execSQL(String sql) 执行非查询sql sdk 1.0 关于cursor和sqlite的相关api对于前面的版本改变很多. 我觉得关键是没了query(String sql) 这个简单的方法了.很不爽. 不过如果你对新的query方法了解深入点,发现其实也就一样. 我们来看2个例子 //执行select type,name from sqlite_master where name='colaconfig' String col[] = { type , name }; Cursor c =db.query( sqlite_master , col, name='colaconfig' , null , null , null , null ); int n=c.getCount(); //执行多 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 查询 //select fee,desc from acctite a,bills b where a.id=b.id String col2[] = { fee , desc }; Cursor c2 =db.query( acctitem a,bills b , col, a.id=b.id , null , null , null , null ); int n2=c2.getCount(); Log.v( cola , c2.getCount= +n2+ ); c2.moveToFirst(); int k = 0; while (!c2.isAfterLast()){ String ss = c2.getString(0) + , + c2.getString(1); c2.moveToNext(); Log.v( cola , ss= +ss+ ); } 现在来看看我们如何在这个理财工具里面应用它. 我们需要在程序的第一次启动时,创建数据库,然后把基本的表创建好,并且初始化好账目 表. 对于上一篇中的initapp方法 ,我们需要改造成 public void initApp(){ BilldbHelper billdb= new BilldbHelper( this ); billdb.FirstStart(); billdb.close(); } 下面我们给出BilldbHelper.java 代码 package com.cola.ui; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.util.Log; /** * Provides access to a database of notes. Each note has a title, the note * itself, a creation date and a modified data. */ public class BilldbHelper { private static final String TAG = Cola_BilldbHelper ; private static final String DATABASE_NAME = cola.db ; SQLiteDatabase db; Context context; BilldbHelper(Context _context) { context=_context; db=context.openOrCreateDatabase(DATABASE_NAME, 0, null ); //创建 数据库 Log.v(TAG, db path= +db.getPath()); } public void CreateTable_acctitem() { try { db.execSQL( CREATE TABLE acctitem ( //创建账目表 + ID INTEGER PRIMARY KEY, + PID integer, + NAME TEXT, + TYPE INTEGER + ); ); Log.v( cola , Create Table acctitem ok ); } catch (Exception e){ Log.v( cola , Create Table acctitem err,table exists. ); } } public void CreateTable_bills() { try { db.execSQL( CREATE TABLE bills ( + ID INTEGER PRIMARY KEY, + fee integer, + userid integer, + sdate TEXT, + stime TEXT, + desc TEXT + ); ); Log.v( cola , Create Table acctitem ok ); } catch (Exception e){ Log.v( cola , Create Table acctitem err,table exists. ); } } public void CreateTable_colaconfig() { try { db.execSQL( CREATE TABLE colaconfig ( + ID INTEGER PRIMARY KEY, + NAME TEXT + ); ); Log.v( cola , Create Table colaconfig ok ); } catch (Exception e){ Log.v( cola , Create Table acctitem err,table exists. ); } } public void InitAcctitem() { db.execSQL( insert into acctitem values (100,0,'收入',0) ); db.execSQL( insert into acctitem values (100100,100,'工资',0) ); db.execSQL( insert into acctitem values (200,0,'支出',1) ); db.execSQL( insert into acctitem values (200100,200,'生活用品 ',1) ); db.execSQL( insert into acctitem values (200101,200,'水电煤气费 ',1) ); db.execSQL( insert into acctitem values (200103,200,'汽油费',1) ); Log.v( cola , insert into ok ); } public void QueryTable_acctitem(){ } public void FirstStart(){ //如果是第一次启动,就不存在colaconfig这张表. try { String col[] = { type , name }; Cursor c =db.query( sqlite_master , col, name='colaconfig' , null , null , null , null ); int n=c.getCount(); if (c.getCount()==0){ CreateTable_acctitem(); CreateTable_colaconfig(); CreateTable_bills(); InitAcctitem(); } Log.v( cola , c.getCount= +n+ ); } catch (Exception e){ Log.v( cola , e= +e.getMessage()); } } public void close(){ db.close(); } }
本文档为【Android 范例-个人理财工具 之二 启动时初始化数据】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_044822
暂无简介~
格式:doc
大小:22KB
软件:Word
页数:0
分类:
上传时间:2018-02-18
浏览量:3