第一范文网 - 专业文章范例文档资料分享平台

第一行代码Android学习笔记完全版

来源:用户分享 时间:2025/5/22 12:24:13 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_BOOK); db.execSQL(CREATE_CATEGORY); Toast.makeText(mcontext, \创建成功\ } public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL(\ db.execSQL(\ onCreate(db); }

缺点:需要删除已经存在的表,以前的数据也会被删除。

3、添加数据 4、更新数据 5、删除数据 6、查询数据

7、直接使用SQL操作数据库

添加数据:db.execSQL(―insert into Book(name,author,pages,price) values(?,?,?,?)‖,new String[] {―God‖,‖hujun‖,‖324‖,‖34.23‖});

更新数据:db.execSQL(―update Book set price=? where name=?‖, new String[] {―12.33‖,‖God‖});

删除数据:db.execSQL(―delete from Book where pages>?‖,new String[] {―100‖});

查询数据:db.rawQuery(―select * from Book‖,null);

查询数据方法: 首先,获取Cursor: Cursor cursor=null;

cursor=db.rawQuery(\然后,利用cursor得到返回的数据:

while(cursor.moveToNext()) { String author=cursor.getString(cursor.getColumnIndex(\ String name=cursor.getString(cursor.getColumnIndex(\ double price=cursor.getDouble(cursor.getColumnIndex(\ int pages=cursor.getInt(cursor.getColumnIndex(\ Log.i(\ Log.i(\ Log.i(\ Log.i(\ }

如果是第一次登陆,则将初始化为早7点,晚11点; 如果不是第一次登陆,则加载之前的设置

四、数据库最佳实践 1、使用事务

事务操作可以保证某一系列的操作要么全部完成,要么全部都不完成,保证安全。 首先,开启事务:db.beginTransaction(); 然后,执行数据库操作;

最后,事务成功:db.setTransactionSuccessful();

当执行操作出现故障时,事务不会成功,则以上的操作不会完成,数据库不会变化。 public void replaceData() { SQLiteDatabase db=databaseHelper.getWritableDatabase(); db.beginTransaction(); //开启事务 //首先,删除数据 db.execSQL(\ //手动设定一个断点,模仿删除失败 if(true) try { throw new IOException();

} catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //然后,添加数据 db.execSQL(\into Book(name,author,pages,price) values(?,?,?,?)\String[] {\ //事务执行成功 db.setTransactionSuccessful(); } do

2、升级数据库最佳写法

之前升级数据库时,为了确保新增加的table之前没有,就先把table全部删除了,这样的行为是很傻比的。 改进方法为:

改变version,然后在onUpdate()中进行判断,根据version执行不同的更新操作。

databaseHelper = new MyDatabaseHelper(this, \

比如app一共更新了两次,第一次添加了table Category,第二次在table Book中添加category_id.

于是,就有三个版本: version=1 version=2 version=3 建数据库,添加table Book 添加table Category 在table Book中添加category_id

主程序中:databaseHelper = new MyDatabaseHelper(this, \将版本号改为3。

如果是第一次安装,则直接进入onCreate(),直接安装最新版本; 如果第一次安装版本1,则进入onUpdate(),连续进行了两次升级; 如果第一次安装版本2,则进入onUpdate(),只进行了最后一次升级。 public static final String CREATE_BOOK=\ \category_id,integer)\ public static final String CREATE_CATEGORY=\table Category(id integer primary autoincrement,category_name text,category_code integer)\

key

private Context mcontext; public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_BOOK); db.execSQL(CREATE_CATEGORY); Toast.makeText(mcontext, \创建成功\ }

//注意,switch语句里面,没有添加break! public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { switch (oldVersion) { case 1: db.execSQL(CREATE_CATEGORY); case 2: db.execSQL(\ default: } }

第七章 Content Provider

一、简介

Content Provider用法有两种:

1、使用现有的CP来读取和操作相应程序中的数据;比如系统电话本。 2、创建自己的CP给我们的程序数据提供外部访问的接口。

二、访问已有的CP

当一个APP通过CP对其数据提供了外部的访问接口,则其他任何程序都可以通过这个接口对数据进行访问和操作。

1、ContentResolver用法

任何程序如果想访问其他程序通过CP共享的数据,都要使用ContentResolver,通过

搜索更多关于: 第一行代码Android学习笔记完全版 的文档
第一行代码Android学习笔记完全版.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3ib0c3iuxu6o2vt5kyck_9.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top