(完整版)Android大数据的存储和大数据的访问

合集下载

Android应用程序中的数据存储与读取方法

Android应用程序中的数据存储与读取方法

Android应用程序中的数据存储与读取方法第一章:介绍数据存储与读取在Android应用程序中的重要性在Android应用程序开发中,数据存储与读取是非常重要的一环。

Android应用程序通常需要保存用户数据、应用设置和其他持久化数据,以便在不同的应用会话中进行读取和使用。

为了实现这一功能,Android提供了多种数据存储与读取的方法,开发者可以根据具体需求选择最合适的方法。

第二章:SharedPreferences的数据存储与读取SharedPreferences是Android平台中一种简单、轻量级且易于使用的数据存储方法。

通过SharedPreferences,开发者可以将少量的键值对数据保存到应用的默认SharedPreferences文件中。

首先,开发者需要通过getSharedPreferences()方法获取SharedPreferences对象,然后使用putXxx()方法存储数据,最后使用getXxx()方法读取数据。

第三章:SQLite数据库的数据存储与读取SQLite是Android平台内置的轻量级关系型数据库。

在Android应用程序中,开发者可以使用SQLite来创建本地数据库,存储和读取大量结构化数据。

使用SQLite,开发者可以通过SQL语句来执行各种数据库操作,如创建表、插入数据、更新数据和查询数据等。

第四章:文件存储与读取除了SharedPreferences和SQLite数据库,Android应用程序还可以使用文件系统来进行数据存储与读取。

通过文件系统,开发者可以创建私有文件、公共文件和缓存文件。

使用FileOutputStream和FileInputStream类,开发者可以进行文件的写入和读取操作。

第五章:网络数据的存储与读取随着移动互联网的快速发展,Android应用程序越来越需要与服务器进行数据交互。

开发者可以通过网络请求获取服务器返回的数据,然后将这些数据存储到本地进行后续的读取和使用。

移动应用开发中的数据存储与读取技巧

移动应用开发中的数据存储与读取技巧

移动应用开发中的数据存储与读取技巧在移动应用开发中,数据的存储与读取是非常常见的需求。

不同的应用场景需要不同的存储方式,例如数据量较小的应用可以使用 SharedPreferences,而数据量较大的应用则需要使用 SQLite 数据库或者 NoSQL 数据库。

本文将介绍在移动应用开发中常用的数据存储与读取技巧。

一、SharedPreferencesSharedPreferences 是 Android 系统中一个轻量级的数据存储方式,它适合用于存储一些简单的配置信息或者少量的用户数据。

SharedPreferences 存储数据的模式类似于键值对,其中键为字符串类型,值可以为布尔型、整型、浮点型、长整型和字符串类型。

SharedPreferences 的写入和读取操作非常简单明了,下面是一个示例代码:// 写入数据SharedPreferences.Editor editor = getSharedPreferences("data", MODE_PRIVATE).edit();editor.putString("name", "Tom");editor.putInt("age", 20);editor.apply();// 读取数据SharedPreferences sharedPreferences =getSharedPreferences("data", MODE_PRIVATE);String name = sharedPreferences.getString("name", "");int age = sharedPreferences.getInt("age", 0);二、SQLite 数据库SQLite 是一种轻量级、可嵌入的关系型数据库,它可以储存在应用程序的内部存储器中,适合储存大量复杂数据。

Android 数据库的操作之存储和获取

Android 数据库的操作之存储和获取

Android 数据库的操作android平台中可以用来存储数据的方式很多,平时常用的有sharedpreference、file存储、sqlite数据库存储以用网络存储几种基本的存储方法。

下面比较详细的介绍如何实现数据的存储和获取:轻量级的SharedPreferences存储,它是Android提供用来存储一些简单的配置信息的一种机制,例如,一些默认欢迎语、登录的用户名和密码等。

其以键值对的方式存储,使得我们可以很方便的读取和存入。

这个界面有点类似J2EE平台中的简单的登陆界面。

例如手机平台中游戏或者应用程序登陆之前要输入个人的用户名和密码的数据,我们就可以用SharedPreferences来存储数据。

在我们的上海电信项目中的登录界面就用到sharedPreferences来保存数据。

SharedPreferences是通过Context 类的 getSharedPreferences方法操作的。

preferences储存在文件中,而文件名用来指向preferences。

getSharedPreferences(String,int)。

在一个类里面实例化,就可以在其它地方共享这些数据。

目前这个类不支持多进程使用。

下面的代码是怎么从prefecences中读取数据:public static final String PREF_FILE_NAME = “PrefFile”;…SharedPreferences preferences =getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);int storedPreference = preferences.getInt(”storedInt”, 0);// use the values其中MODE_PRIVATE 是 preferences 的操作模式,这是默认的模式,代表只有创建这个preferences 的程序才能访问这个preferences。

Android开发中的数据存储和访问方法详解(三)

Android开发中的数据存储和访问方法详解(三)

Android开发中的数据存储和访问方法详解在Android应用开发中,数据存储和访问是一个非常重要的方向。

无论是开发一个国际知名的社交媒体应用,还是一个小巧实用的工具应用,都离不开对数据的存储和访问。

本文将围绕这一主题展开,分析Android开发中常见的数据存储和访问方法。

1. 内部存储内部存储是Android设备上每个应用的私有存储空间,只能被应用本身访问。

应用在内部存储中可以创建文件和目录,并进行读写操作。

这种存储方式适用于一些应用数据需要保密和不被其他应用访问的情况下。

常见的内部存储方法有使用Java的File和FileStream类,以及SharedPreferences类。

使用File和FileStream类可以方便地创建、读写和删除文件。

通过获取应用的内部存储目录,可以使用File类创建文件对象,然后通过FileStream类进行读写操作。

这种方法适用于需要对二进制文件进行读写的情况,比如保存应用设置、缓存文件等。

SharedPreferences类则适用于存储一些简单的键值对数据。

通过SharedPreferences类可以保存用户的偏好设置、记住用户名和密码等。

该类的使用非常简单,可以轻松实现数据的存储和访问。

2. 外部存储外部存储是指Android设备上的SD卡或其他外部存储设备,可以被多个应用共享访问。

外部存储可以用于存储一些较大的文件,比如音频、视频和图片等。

在访问外部存储时,需要校验设备是否存在外部存储设备,并且需要在Manifest文件中声明相应的权限。

使用外部存储时,可以通过Java的File和FileStream类来创建、读写和删除文件。

类似于内部存储,只是在创建文件时,需要将存储路径指定为外部存储路径。

使用外部存储需要注意空间的使用和设备兼容性,同时也要注意用户隐私和数据安全。

3. SQLite数据库如果应用需要存储大量结构化数据,如用户信息、应用日志等,那么使用SQLite数据库是一个很好的选择。

第6章Android数据的存储与访问

第6章Android数据的存储与访问
Company Logo
第6章 数据存储与访问
6.1 简单存储
可读 (MODE_WORLD_READABLE) 可写(MODE_WORLD_WRITEABLE) 如果将SharedPreferences定义为私有模式,只有创建程 序有权对其进行读取或写入; 如果将SharedPreferences定义为可读模式,不仅创建程 序有权对其进行读取或写入,其他程序可以对其进行读 取,但不能写入; 如果将SharedPreferences定义为可写模式,不仅创建程 序有权对其进行读取或写入,其他程序可以对其进行写 入,但不能读取。 定义访问模式的方法如下所示:
Company Logo
第6章 数据存储与访问
6.2 文件存储
是否具备 SD 卡。 最后,SD卡中数据的存取通过 FileOutputStream/FileInputStream进行, SD卡不存 在读写限制。 下面通过修改LX6_1案例程序得到的LX6_2案例程序来了 解如何在SD卡中进行数据的读取。 (1)为手机模拟器设置SD卡,参照上面的操作设置步骤 (2)在LX6_2工程项目的AndroidManifest.xml文件中 加入访问SDCard的权限语句。 (3)设计res/layout目录下的main.xml布局文件,添加 两个按钮控件和两个编辑框控件 (4)编写LX6_2.java文件代码
Company Logo
第6章 数据存储与访问
6.2 文件存储
接下来,通过LX6_1的案例程序了解如何操作内部数据的 存取。 (1)设计res/layout目录下的main.xml布局文件,添加两 个按钮控件和两个编辑框控件。 (2)编写LX6_1.java文件代码。 (3)保存并运行程序,效果如图所示。

Android数据存储和访问

Android数据存储和访问

1.2 示例
在Linux系统中,文件权限分别描述了创建者、同组用 户和其他用户对文件的操作限制。x表示可执行,r表示 可读,w表示可写,d表示目录,-表示普通文件。因此, “-rw-rw-rw”表示SaveSetting.xml可以被创建者、 同组用户和其他用户进行读取和写入操作,但不可执 行 产生这样的文件权限与程序人员设定的 SharedPreferences的访问模式有关,“-rw-rw-rw” 的权限是“全局读+全局写”的结果 如果将SharedPreferences的访问模式设置为私有, 则文件权限将成为“-rw-rw ---”,表示仅有创建者和 同组用户具有读写文件的权限
1.1 SharedPreferences
SharedPreferences不仅能够保存数据,还能够实现 不同应用程序间的数据共享 SharedPreferences支持三种访问模式 私有(MODE_PRIVATE):仅有创建程序有权限对 其进行读取或写入 全局读(MODE_WORLD_READABLE):不仅创 建程序可以对其进行读取或写入,其他应用程序也 读取操作的权限,但没有写入操作的权限 全局写(MODE_WORLD_WRITEABLE):创建程 序和其他程序都可以对其进行写入操作,但没有读 取的权限
public static final String PREFERENCE_NAME = "SaveSetting";
2. 为了可以使用SharedPreferences,需要将访问模式 和SharedPreferences名称作为参数,传递到 getSharedPreferences()函数,并获取到 SharedPreferences对象
public static int MODE = Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE;

Android开发中的数据存储和访问方法详解(二)

Android开发中的数据存储和访问方法详解(二)

一、引言在当今移动互联网时代,Android系统已经成为最重要的移动操作系统之一。

作为Android开发者,数据存储和访问是必不可少的技术领域。

本文将详细介绍Android开发中的数据存储和访问方法,帮助读者更好地理解和应用这些技术。

二、内部存储内部存储是指应用程序在设备上的私有存储空间。

在Android中,每个应用都有一个私有的内部存储空间,其他应用无法访问,确保了数据的安全性。

我们常用的方法有文件存储和SharedPreferences两种。

文件存储是将数据以文件的形式保存在设备上。

开发者可以通过Java的File和FileOutputStream来实现文件的读写操作。

当需要保存少量简单数据时,可以使用SharedPreferences,它是一种键值对的存储方式,非常方便快捷。

三、外部存储外部存储是指设备上的公共存储空间,可以被所有应用访问到。

Android系统提供了一些方法来操作外部存储,如读写SD卡上的文件。

外部存储的主要优点是容量大,但相对来说对数据的安全性和隐私保护较差。

在Android开发中,我们可以通过File类来操作外部存储。

首先需要获取外部存储的状态,确认是否有可用的外部存储空间,并声明文件的写入权限。

然后可以使用FileOutputStream来将数据写入外部存储。

四、数据库数据库是Android开发中常用的数据存储和访问方式。

Android系统内置了SQLite数据库,开发者可以通过SQLiteOpenHelper类来创建、打开和管理数据库。

SQLite是一种轻量级的数据库引擎,非常适用于移动设备。

在使用数据库之前,首先需要创建数据库表和定义数据结构。

通过创建一个继承自SQLiteOpenHelper的子类,可以实现数据库的创建和版本管理等功能。

然后可以使用SQLiteDatabase类来执行增删改查等操作。

通过使用SQLite数据库,开发者可以更高效地存储和管理大量结构化数据。

Android开发中的数据存储和访问方法详解(五)

Android开发中的数据存储和访问方法详解(五)

Android开发中的数据存储和访问方法详解在Android开发中,数据存储和访问是一个非常重要的话题。

随着移动设备的普及,数据的存储和访问方式也在不断发展和更新。

本文将深入探讨Android开发中常用的数据存储和访问方法,帮助开发者更好地选择和应用合适的数据处理方案。

一、Shared PreferencesShared Preferences是Android开发中最常用的数据存储方式之一。

它用于存储少量的键值对数据,并提供了简单的API来读写数据。

Shared Preferences适用于存储一些配置信息、用户偏好设置等简单的数据,它的存储位置是应用私有的。

二、SQLite数据库SQLite是一个轻量级的嵌入式数据库引擎,广泛应用于Android开发中。

与Shared Preferences相比,SQLite数据库适用于存储结构化的大量数据。

通过使用SQLiteOpenHelper类,开发者可以创建、升级和管理数据库,使用SQL语句进行数据的增删改查操作。

三、文件存储文件存储是一种常见的数据存储方式。

它适用于存储不需要进行复杂查询和排序的数据。

Android开发中可以通过使用FileOutputStream和FileInputStream类来进行文件的写入和读取操作。

需要注意的是,文件存储需要申请存储权限,并且要注意存储路径的选择。

四、ContentProviderContentProvider是Android框架提供的一种跨进程数据共享方案。

通过ContentProvider,应用可以将数据暴露给其他应用访问。

开发者可以自定义ContentProvider,并实现查询、插入、更新和删除等操作。

ContentProvider是Android开发中较为复杂的数据访问方式,适用于需要共享数据的场景。

五、网络存储随着互联网的普及,数据的网络存储和访问也成为了Android开发中的重要问题。

开发者可以通过HTTP协议和WebService来进行网络数据的请求和响应。

Android开发中的数据存储和访问方法详解(八)

Android开发中的数据存储和访问方法详解(八)

Android开发中的数据存储和访问方法详解在Android开发中,数据的存储和访问是非常重要的。

无论是临时变量,用户设置,还是应用程序的数据,我们都需要有效地管理和处理这些数据。

本文将详细介绍Android开发中常用的数据存储和访问方法。

一、Shared Preferences(共享偏好设置)Shared Preferences是Android提供的一种轻量级的数据存储方式,适用于简单的键值对数据。

通过Shared Preferences可以有效地存储用户的设置信息,如语言偏好、主题颜色等。

使用Shared Preferences时,需要先获取一个SharedPreferences对象,然后通过该对象对数据进行读写操作。

SharedPreferences提供了一系列的putXXX()和getXXX()方法,可以方便地存储和读取各种类型的数据。

二、Internal Storage(内部存储)Internal Storage是Android中应用程序的私有存储空间,存储在设备的内部存储中。

这种存储方式适用于一些敏感的数据,只有应用程序本身可以访问到这些数据。

使用Internal Storage时,可以通过Context类提供的openFileOutput()和openFileInput()方法对文件进行读写操作。

在应用程序被卸载时,Internal Storage中的数据也会被删除。

三、External Storage(外部存储)External Storage是指设备上的公共存储空间,如SD卡。

它适用于存储一些大型文件、缓存数据以及与其他应用程序共享数据。

在使用External Storage之前,需要在文件中添加相应的权限声明。

通过Environment类提供的getExternalStorageDirectory()方法可以获取外部存储的根目录,然后可以通过File类进行具体的文件操作。

四、SQLite数据库SQLite数据库是一种轻量级的关系型数据库,适用于存储结构化数据。

Android开发中的数据存储和访问方法详解(一)

Android开发中的数据存储和访问方法详解(一)

Android开发中的数据存储和访问方法详解Android应用程序的数据存储和访问是开发过程中必不可少的一个环节。

不同的数据存储方法适用于不同的场景和需求。

本文将对Android开发中的数据存储和访问方法进行详细的介绍和分析。

一、SharedPreferences方法SharedPreferences是一种轻量级的数据存储方式,适用于存储少量的简单配置数据,如应用程序的设置选项或用户的偏好设置。

SharedPreferences存储的数据以键值对的形式存在,可以跨越不同的Activity或Application进行访问。

SharedPreferences的使用非常简便,可以通过SharedPreferences类的getSharedPreferences方法获取SharedPreferences对象,并通过该对象的edit方法来添加、修改或删除数据。

二、SQLite数据库方法SQLite是Android中内置的关系型数据库,在Android开发中广泛应用于存储和访问结构化数据。

SQLite具有轻量级、高效性和可靠性的特点,适用于存储大量的数据或需要进行复杂的数据操作。

通过Android提供的SQLiteOpenHelper类,开发者可以创建和管理SQLite数据库。

SQLiteOpenHelper提供了创建和更新数据库的方法,并通过getWritableDatabase或getReadableDatabase方法获取数据库对象,用于进行数据的增删改查操作。

除了使用原生的SQL语句,Android还提供了一套方便的API,如query、insert、update和delete等方法,简化了开发者对数据库的操作。

三、文件存储方法除了使用SharedPreferences和SQLite数据库,Android还支持将数据存储到文件中。

文件存储适用于需要储存大量非结构化数据,如图片、音频和视频等。

Android提供了File和FileOutputStream等类,可以通过这些类来实现对文件的读写操作。

第八章_Android数据存储与访问

第八章_Android数据存储与访问

8.1 简单存储
8.1.2 示例
8. 9. public class SimplePreferenceDemo extends Activity { 10. 11. private EditText nameText; 12. private EditText ageText; 13. private EditText heightText; 14. public static final String PREFERENCE_NAME = "SaveSetting"; 15. public static int MODE = Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE; 16. 17. @Override 18. public void onCreate(Bundle savedInstanceState) { 19. super.onCreate(savedInstanceState); 20. setContentView(yout.main); 21. nameText = (EditText)findViewById(); 22. ageText = (EditText)findViewById(R.id.age); 23. heightText = (EditText)findViewById(R.id.height); 24. }
SharedPreferences sharedPreferences = getSharedPreferences(PREFERENCE_NAME, MODE);
8.1 简单存储
8.1.1 SharedPreferences
在获取到SharedPreferences对象后,则可以通过 SharedPreferences.Editor类对SharedPreferences进行 修改,最后调用commit()函数保存修改内容 SharedPreferences广泛支持各种基本数据类型,包括 整型、布尔型、浮点型和长型等等

Android中数据的存储和访问

Android中数据的存储和访问

保存数据的几种方式 :●文件●SharePreferences(保存设置参数)●SqlLite●Content Provider●网络文件:写文件 :通过ContextWrapper的openFileOutput(String name,int mode)返回FileOutputStream, Activity是ContextWrapper的子类, 其创建的文件位于手机自身的空间首先给大家介绍使用文件如何对数据进行存储,Activity提供了openFileOutput()方法可以用于把数据输出到文件中,具体的实现过程与在J2SE环境中保存数据到文件中是一样的。

第一参数说明: 用于指定文件名称,不能包含路径分隔符“/”,如果文件不存在,Android 会自动创建它。

创建的文件保存在/data/data/<package name>/files目录;Activity还提供了getCacheDir()和getFilesDir()方法:getCacheDir()方法用于获取/data/data/<package name>/cache目录getFilesDir()方法用于获取/data/data/<package name>/files目录第二参数说明:用于指定操作模式,有四种模式,分别为:Context.MODE_PRIVATE = 0Context.MODE_APPEND = 32768Context.MODE_WORLD_READABLE = 1Context.MODE_WORLD_WRITEABLE = 2Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。

可以使用Context.MODE_APPENDContext.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。

09Android数据存储和访问(3)

09Android数据存储和访问(3)

第1次
1.新建项目
项目名称:MyDiary
包名:.bzu.db
类名:MainActivity
2.使用SQLiteHelper(抽象类)来完成数据库的创建
包:.bzu.service
进行单元测试:看数据库究竟有没有被创建出来
包:.bzu.db
类:DiaryServiceTest
配置好单元测试的环境
执行单元测试
创建好的数据库是以文件的形式进行存放的
存放位置:data/data/应用的包名/databases/diary.db
打开数据库:借助于第三方工具SQLiteDeveloper(注册数据库)导出数据库后,借助于第三方工具注册数据库
3.编写代码完成增删改查
首先定义实体类Diary
然后定义数据库访问类包:.bzu.service 类:DiaryService
JavaEE:面向接口编程,势必会建立很多类,虚拟机加载时是会消耗时间的。

完成添加日记的方法
思考,如果链接未关闭,调用database = dbOpenHelper.getWritableDatabase();仍然打开的是缓存中的数据库吗?
完成删除日记的方法
完成获取记录数的方法
4.。

如何使用Android的数据库和内容提供器进行数据管理(一)

如何使用Android的数据库和内容提供器进行数据管理(一)

使用Android的数据库和内容提供器进行数据管理Android作为当今最流行的移动操作系统之一,为开发者提供了丰富的工具和功能,其中包括数据库和内容提供器,用于实现数据的存储和管理。

本文将介绍如何使用Android的数据库和内容提供器进行数据管理。

一、概述数据库是一种用于存储和管理数据的结构化方式。

在Android中,开发者可以使用SQLite数据库来实现数据的持久化存储。

SQLite是一种轻量级的关系型数据库管理系统,具有占用空间小、运行速度快等特点,非常适合在移动设备上使用。

内容提供器是Android的一种组件,用于实现数据的共享和访问。

通过内容提供器,开发者可以将应用程序的数据开放给其他应用程序使用,同时也可以从其他应用程序中获取数据。

内容提供器的使用能够提高数据的安全性和可用性,并且符合Android的设计原则。

二、使用SQLite数据库存储数据1. 创建数据库和数据表首先,需要创建一个SQLite数据库和相应的数据表来存储数据。

可以通过继承SQLiteOpenHelper类来实现数据库的创建和版本管理。

在数据库创建时,可以定义相应的数据表,并指定表中的字段。

2. 插入和查询数据插入数据是将数据存储到数据库中的过程,可以使用ContentValues对象来组织要插入的数据。

查询数据是从数据库中获取数据的过程,可以使用SQLiteDatabase对象的query方法来执行查询操作,并将结果返回。

3. 更新和删除数据更新数据是对数据库中已有数据进行修改的过程,可以使用SQLiteDatabase对象的update方法来执行更新操作。

删除数据是将数据库中的数据删除的过程,可以使用SQLiteDatabase对象的delete 方法来执行删除操作。

三、使用内容提供器实现数据共享1. 创建内容提供器首先,需要创建一个内容提供器来管理应用程序的数据。

可以继承ContentProvider类,并实现相应的方法,例如query、insert、update和delete等。

android数据访问

android数据访问

SQLiteDatabase操作
SQLiteDatabase的rawQuery() 用于执行select语句,使用例子如下: SQLiteDatabase db = ....; Cursor cursor = db.rawQuery(“select * from person”, null); while (cursor.moveToNext()) { int personid = cursor.getInt(0); //获取第一列的值,第一列的索引从0开始 String name = cursor.getString(1);//获取第二列的值 int age = cursor.getInt(2);//获取第三列的值 } cursor.close(); db.close(); rawQuery()方法的第一个参数为select语句;第二个参数为select语句中占位符参数 的值,如果select语句没有使用占位符,该参数可以设置为null。带占位符参数的 select语句使用例子如下: Cursor cursor = db.rawQuery("select * from person where name like ? and age=?", new String[]{"%传智%", "4"});
使用SQLiteDatabase操作SQLite 数据库
除了前面给大家介绍的execSQL()和rawQuery()方法, SQLiteDatabase还专门提供了对应于添加、删除、 更新、查询的操作方法: insert()、delete()、update()和query() 。这些方法实际上是给那些不太了解SQL 语法的菜鸟使用的,对于熟悉SQL语法的程序员而言,直接使用execSQL()和rawQuery()方法执行SQL语句 就能完成数据的添加、删除、更新、查询操作。 Insert()方法用于添加数据,各个字段的数据使用ContentValues进行存放。 ContentValues类似于MAP,相 对于MAP,它提供了存取数据对应的put(String key, Xxx value)和getAsXxx(String key)方法, key为字段 名称,value为字段值,Xxx指的是各种常用的数据类型,如:String、Integer等。 SQLiteDatabase db = databaseHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("name", "传智播客"); values.put("age", 4); long rowid = db.insert(“person”, null, values);//返回新添记录的行号,与主键id无关 不管第三个参数是否包含数据,执行Insert()方法必然会添加一条记录,如果第三个参数为空,会添加一条 除主键之外其他字段值为Null的记录。Insert()方法内部实际上通过构造insert语句完成数据的添加,Insert() 方法的第二个参数用于指定空值字段的名称,相信大家对此参数会感到疑惑,此参数的作用是干嘛的?是 这样的:如果第三个参数values 为Null或者元素个数为0, Insert()方法必然要添加一条除了主键之外其它 字段为Null值的记录,为了满足这条insert语句的语法, insert语句必须给定一个字段名,如:insert into person(name) values(NULL),倘若不给定字段名 , insert语句就成了这样: insert into person() values(), 显然这不满足标准SQL的语法。对于字段名,建议使用主键之外的字段,如果使用了INTEGER类型的主键 字段,执行类似insert into person(personid) values(NULL)的insert语句后,该主键字段值也不会为NULL。 如果第三个参数values 不为Null并且元素的个数大于0 ,可以把第二个参数设置为null。

Android开发中的数据存储和访问方法详解(十)

Android开发中的数据存储和访问方法详解(十)

Android开发中的数据存储和访问方法详解一、概述随着移动应用的普及,数据存储和访问成为了Android开发中不可忽视的重要部分。

本文将详细介绍Android开发中常用的数据存储和访问方法,帮助开发者更好地掌握相关技术。

二、SharedPreferencesSharedPreferences是一种轻量级的数据存储方式,适用于存储少量的简单键值对信息。

通过SharedPreferences,我们可以轻松实现用户偏好设置的存储和读取。

这种方式常用于保存用户的登录状态、应用的配置信息等。

但是需要注意的是,SharedPreferences存储的数据仅限于当前应用的上下文中,不适合存储大量数据或敏感信息。

三、SQLite数据库SQLite数据库是Android中最常用的关系型数据库,适用于存储大量结构化数据。

通过SQLite数据库,我们可以实现数据的持久化存储,并进行复杂的查询和操作。

在Android开发中,很多应用都使用SQLite数据库来管理用户信息、缓存数据等。

通过SQLiteOpenHelper 类,我们可以创建、升级和管理数据库。

使用SQL语句可以进行增删改查等数据库操作。

四、文件存储除了SharedPreferences和SQLite数据库,Android开发还可以使用文件存储来保存数据。

文件存储适用于存储较大文件或非结构化数据。

通过File类可以实现对文件的读写操作。

在Android开发中,常用的文件存储方式有内部存储和外部存储。

内部存储一般存储应用私有文件,不需要申请权限,并且只有应用本身可以访问。

而外部存储则可以存储应用共享文件,需要申请相应的权限。

五、网络存储在移动应用开发中,网络存储也是非常重要的一部分。

通过网络存储,我们可以实现与服务器的数据交互,获取远程数据。

常用的网络存储方式有HTTP请求、JSON、XML等。

通过HTTP请求,我们可以发送GET或POST请求,获取服务器的响应数据。

(完整版)Android大数据的存储和大数据的访问

(完整版)Android大数据的存储和大数据的访问

南昌航空大学实验报告二0 一 4 年11月14 日课程名称:An droid 实验名称:________ A n droid 数据存储和数据访问__________________ 班级:________ 姓名:_同组人:_____________________________________指导教师评定:_________________________________________ 签名: _________________________ 一:实验目的掌握SharedPreferences的使用方法;掌握各种文件存储的区别与适用情况;了解SQLite数据库的特点和体系结构;掌握SQLite数据库的建立和操作方法;理解ContentProvider的用途和原理;掌握ContentProvider的创建与使用方法二:实验工具Eclipse( MyEclipse)+ ADT + Android2.2 SDK ;三:实验题目1. 应用程序一般允许用户自己定义配置信息,如界面背景颜色、字体大小和字体颜色等,尝试使用SharedPreferences保存用户的自定义配置信息,并在程序启动时自动加载这些自定义的配置信息。

2. 尝试把第1题的用户自己定义配置信息,以INI文件的形式保存在内部存储器上。

3. 使用代码建库的方式,创建名为test.db的数据库,并建立staff数据表,表内的属性值如下表所示:On ClickListe ner writeButt on Liste ner =new On ClickListe ner() {4. 建立一个ContentProvider ,用来共享第3题所建立的数据库; 四:实验代码 In ternalFileDemopublic class Intern alFileDemoexte nds Activity {private final Stri ng FILE_NAME = private TextView labelView privateTextViewdisplayView private CheckBox appendBox private EditText en tryText@Overridepublic voidon Create(Bu ndle saved In sta nceState) {super .onCreate(savedInstanceState); setContentView(yout.main );labelView =仃 extView)fi ndViewByld(R.id. label );displayView = (TextView)fi ndViewByld(R.id. display ); appendBox = (CheckBox)findViewByld(R.id. append ); en tryText= (EditText)fi ndViewByld(R.id.Button writeButton = (Butt on)fin dViewByld(R.id.Button readButton = (Butto n)fin dViewById(R.id.en tryText .selectAll();en tryText.fin dFocus();}"fileDemo.txt"entry );write );read );writeButton .setOnClickListener( writeButt on Liste ner ); readButton .setOnClickListener(readButt on Liste ner);@Overridepublic void onClick(View v) { FileOutputStream fos = null ; try {if ( appendBox .isChecked()){fos = openFileOutput( FILE_NAME ,Context. MODE_APPEND); } else {fos =openFileOutput( FILE_NAME ,Context. MODE_PRIVATE );}String text = entryText .getText().toString();fos.write(text.getBytes());labelView .setText( " 文件写入成功,写入长度:" +text.length());entryText .setText( "" );} catch (FileNotFoundException e) {e.printStackTrace();}catch (IOException e) {e.printStackTrace();finally {if (fos != null ){ try {fos.flush();fos.close();} catch (IOException e) { e.printStackTrace();}}}}};OnClickListener readButtonListener new OnClickListener() { @Overridepublic void onClick(View v) { displayView .setText( "" );FileInputStream fis = nulltry {fis = openFileInput( FILE_NAME );if (fis.available() == 0){return}byte [] readBytes = new byte [fis.available()];while (fis.read(readBytes) != -1){}Stri ng text = new Str in g(readBytes);displayView .setText(text);labelView .setText( "文件读取成功,文件长度:"+text.length());} catch (FileNotFoundException e) {e.pri ntStackTrace();}catch (IOExcepti on e) {e.pri ntStackTrace();}}};}SimplePrefere nceDemopublic class SimplePrefere nceDemo exte nds Activity {private EditText n ameText ;private EditText ageText ;private EditText heightTextJpublic static final Stri ng PREFERENCE_NAME = "SaveSetti ng"public static int MODE= Context.MODE WORLD READABLE +——Con text.MODE_WORLD_WRITEABLE;@Overridepublic void on Create(Bu ndle saved In sta nceState) {super .onCreate(savedInstanceState);setContentView(yout. main );nameText = (EditText)findViewByld(R.id. name );ageText = (EditText)findViewByld(R.id. age );heightText = (EditText)fi ndViewByld(R.id. height );}@Overridepublic void on Start(){super .onStart();l oadSharedPreferences();}private static final Stri ngDB_NAME = "people.db"privatestaticfinalStri ng DB_TABLE = "peopleinfo" privatestatic finalint DB_VERSION = 1J@Override public void on Stop(){ super .onStop(); saveSharedPrefere nces(); } private void loadSharedPrefere nces(){ SharedPrefere nces sharedPrefere nces = getSharedPrefere nces( PREFERENCE_NAME, MODE); Stri ng n ame = sharedPrefere nces.getStri ng( "Name"int age = sharedPreferences.getlnt( "Age" , 20); float height = sharedPrefere nces.getFloat( "Height"n ameText .setText (n ame); ageText .setText(Str ing. valueOf (age));heightText .setText(Stri ng. valueOf (height)); } private void saveSharedPrefere nces(){ SharedPrefere nces sharedPrefere nces = getSharedPrefere nces( PREFERENCE_NAME, MODE); SharedPrefere nces.Editor editor = sharedPrefere nces.edit(); "Tom");,1.81f);In teger. editor.putStri ng( "Name" , nameText .getText().toString()); editor.putI nt( "Age"parseInt ( ageText .getText().toString())); editor.putFloat( "Height" Float. parseFloat(heightText .getText().toString())); mit(); } SQLiteDemo DBAdapter.javapublic class DBAdapter {public static final String KEY_ID = "_id" ;public static final String KEY_NAME = "name" ;public static final String KEY_AGE = "age" ;public static final String KEY_HEIGHT = "height"private SQLiteDatabase db;private final Context context ;private DBOpenHelper dbOpenHelper ;public DBAdapter(Context _context) { context = _context;}/** Close the database */public void close() { if ( db !=null ){ db .close(); db = null ;}}/** Open the database */public void open() throws SQLiteException { dbOpenHelper = newDBOpenHelper( context , DB_NAME, DB_VERSION );null try {db = dbOpenHelper .getWritableDatabase();}catch (SQLiteException ex) {db = dbOpenHelper .getReadableDatabase();}}public long insert(People people) {ContentValues newValues = new ContentValues();newValues.put( KEY_NAME, people. Name );newValues.put( KEY_AGE , people. Age );newValues.put( KEY_HEIGHT , people. Height );return db .insert( DB_TABLE , null , newValues);}public People[] queryAllData() {Cursor results = db .query(KEY_NAME, KEY_AGE, KEY_HEIGHT },null , null , null , null , null ); return ConvertToPeople(results);}public People[] queryOneData( long id) {KEY_NAME, KEY_AGE, KEY_HEIGHT },return ConvertToPeople(results); }private People[] ConvertToPeople(Cursor cursor){int resultCounts = cursor.getCount();if (resultCounts == 0 || !cursor.moveToFirst()){return null ;}People[] peoples = new People[resultCounts];for ( int i = 0 ; i<resultCounts; i++){peoples[i] = new People();peoples[i]. ID = cursor.getInt(0);peoples[i]. Name =cursor.getString(cursor.getColumnIndex(peoples[i]. Age =cursor.getInt(cursor.getColumnIndex(peoples[i]. Height =cursor.getFloat(cursor.getColumnIndex(cursor.moveToNext();}return peoples;public long deleteAllData() {return}db .delete( DB TABLE , null , null );public long deleteOneData( long i d) {return db .delete( DB TABLE , KEY_ID + "=" + id, null }});DB_TABLE , new String[] { KEY_IDCursor results = db .query( DB_TABLE , new String[] { KEY_ID KEY_ID + "=" + id, null , null null , null );KEY_NAME));KEY_AGE ));KEY_HEIGHT ));public long update On eData(Conten tValues updateValues =long id , People people){new Conten tValues();updateValues.put( KEY_NAME, people. Name);updateValues.put( KEY_AGE, people. Age);updateValues.put( KEY_HEIGHT , people. Height );return db .update(null );DB_TABLE , updateValues, KEY_ID + "=" + id,/** 静态Helper类,用于建立、更新和打开数据库*/private static class DBOpe nH elper exte nds SQLiteOpe nH elper {public DBOpe nH elper(C on text con text, Stri ng n ame, CursorFactory factory, int versi on) {super (con text, n ame, factory, vers ion);}private static final String DB_CREATE = "create table "I!+ " float);"DB_TABLE + " (" + KEY_ID + "integer primary key autoincrement.KEY_NAME+ " text not null, " + KEY_AGE+ " integer," + KEY_HEIGHT@Overridepublic void on Create(SQLiteDatabase _db) {_db.execSQL(}DB_CREATE);@Overridepublic void on Upgrade(SQLiteDatabase_n ewVers ion) {_db.execSQL( onCreate(_db); "DROP TABLE IF EXISTS "_db, int _oldVers ion,+ DB_TABLE );int9People.javapublic class People {/** Called when the activity is first created. */privateDBAdapterdbAdepterprivate EditText n ameText private EditText ageText ; private EditText heightText privateEditTextidE ntry ;private TextView labelView private TextView displayView@Overridepublic void on Create(Bu ndle saved In sta nceState) { super .onCreate(savedInstanceState); setContentView(yout.main );n ameText = (EditText)fi ndViewById(R.id. ageText = (EditText)fi ndViewByld(R.id. heightText =(EditText)fi ndViewByld(R.id.idE ntry = (EditText)fi ndViewByld(R.id.public int ID = -1;publicStri ngName public int Age ;public floatHeight@Override publicStri ng toStri ng(){result += "ID :" + this ID + ",result += "姓名: "+ this .Name + result += "年龄: "+ this .Age + result += "身高: "+this.Heightretur n result;} }SQLiteDemo.javapublic class SQLiteDemo exte nds Activity { name); age );height ); id_entry ); Stri ng result =labelView = (TextView)findViewById(R.id. displayView = (TextView)findViewById(R.id.Button addButton = (Button)findViewById(R.id. Button queryAllButton = (Button)findViewById(R.id. Button clearButton = (Button)findViewById(R.id. Button deleteAllButton = (Button)findViewById(R.id. add );query_all clear );delete_allButton queryButton = (Button)findViewById(R.id. Button deleteButton = (Button)findViewById(R.id. Button updateButton = (Button)findViewById(R.id. query ); delete ); update );people. Name = nameText .getText().toString(); people. Age = label );display );addButton.setOnClickListener(queryAllButton.setOnClickListener( clearButton.setOnClickListener(deleteAllButton.setOnClickListener(queryButton.setOnClickListener(deleteButton.setOnClickListener(updateButton.setOnClickListener(dbAdepter = new DBAdapter(dbAdepter .open();}OnClickListener addButtonListener@Overridepublic void onClick(View v) {addButtonListener );queryAllButtonListenerclearButtonListener );deleteAllButtonListenerqueryButtonListener );deleteButtonListener )updateButtonListener )this );= new OnClickListener() {););People people = new People(); Integer. parseInt ( ageText .getText().toString());people. Height =( heightText .getText().toString()); Float. parseFloatlong colunm = dbAdepter .insert(people);if (colunm == -1 ){ labelView .setText( "添加过程错误!");} else {labelView .setText( " 成功添加数据,ID :" +String. valueOf (colunm));}}};OnClickListener queryAllButtonListener = new OnClickListener() { @Overridepublic void onClick(View v) {People[] peoples = dbAdepter .queryAllData();if (peoples == null ){labelView .setText( " 数据库中没有数据 " ); return ;}labelView .setText( " 数据库: " ); String msg = "" ; for ( int i = 0 ; i<peoples.length ; i++){msg += peoples[i].toString()+ "\n" ;}displayView .setText(msg);}};OnClickListener clearButtonListener = new OnClickListener() {@Overridepublic void onClick(View v) { displayView .setText( "" );}};OnClickListener queryButtonListener = new OnClickListener() { @Override public voidonClick(View v) {int id = Integer.parseInt ( idEntry .getText().toString());People[] peoples =dbAdepter .queryOneData(id);OnClickListenerdeleteAllButtonListener@Overridepublic voidonClick(View v) { dbAdepter.deleteAllData();String msg = " 数据全部删除 "labelView}.setText(msg);= new OnClickListener() {};if (peoples == null ){labelView .setText( " 数据库中没有ID 为" +String. valueOf的数据" );return ;}labelView .setText( " 数据库:" ); displayView .setText(peoples[0].toString());}};OnClickListener deleteButtonListener = new OnClickListener() {@Overridepublic void onClick(View v) {long id = Integer. parseInt ( idEntry .getText().toString()); long result =dbAdepter .deleteOneData(id);String msg = "删除ID 为“ +idEntry .getText().toString()++ (result>0? "成功":"失败");labelView .setText(msg);}};OnClickListener updateButtonListener = new OnClickListener() { @Overridepublic void onClick(View v) {People people = new People();people. Name = nameText .getText().toString();people. Age =Integer. parseInt ( ageText .getText().toString());people. Height=Float. parseFloat ( heightText .getText().toString());long id = Integer. parseInt ( idEntry .getText().toString());long count = dbAdepter .updateOneData(id, people);if (count == -1 ){labelView .setText( " 更新错误!" );} else {labelView .setText( " 更新成功,更新数据" +String. valueOf (count)+ " 条" );} }};}(id)+ " 的数据。

安卓系统Android应用程序开发PPT教材_第8章 数据存储与访问(3)

安卓系统Android应用程序开发PPT教材_第8章 数据存储与访问(3)

/forum-58-1.html 安卓HTC One X论坛
8.1 简单存储

25. • • • • • • • • • • • • • • • •
8.1.2 示例
@Override public void onStart(){ super.onStart(); loadSharedPreferences(); } @Override public void onStop(){ super.onStop(); saveSharedPreferences(); } private void loadSharedPreferences(){ SharedPreferences sharedPreferences = getSharedPreferences(PREFERENCE_NAME, MODE); String name = sharedPreferences.getString("Name","Tom"); int age = sharedPreferences.getInt("Age", 20); float height = sharedPreferences.getFloat("Height",);
8.1 简单存储

• • • • • • • • • • • • • • • • •
8.1.2 示例
public class SimplePreferenceDemo extends Activity {
private EditText nameText; private EditText ageText; private EditText heightText; public static final String PREFERENCE_NAME = "SaveSetting"; public static int MODE = Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(yout.main); nameText = (EditText)findViewById(); ageText = (EditText)findViewById(R.id.age); heightText = (EditText)findViewById(R.id.height); }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南昌航空大学实验报告二0一4 年11 月14 日课程名称:Android 实验名称:Android数据存储和数据访问班级:姓名:同组人:指导教师评定:签名:一:实验目的掌握SharedPreferences的使用方法;掌握各种文件存储的区别与适用情况;了解SQLite数据库的特点和体系结构;掌握SQLite数据库的建立和操作方法;理解ContentProvider的用途和原理;掌握ContentProvider的创建与使用方法二:实验工具Eclipse(MyEclipse)+ ADT + Android2.2 SDK;三:实验题目1.应用程序一般允许用户自己定义配置信息,如界面背景颜色、字体大小和字体颜色等,尝试使用SharedPreferences保存用户的自定义配置信息,并在程序启动时自动加载这些自定义的配置信息。

2.尝试把第1题的用户自己定义配置信息,以INI文件的形式保存在内部存储器上。

3.使用代码建库的方式,创建名为test.db的数据库,并建立staff数据表,表内的属性值如下表所示:4.建立一个ContentProvider,用来共享第3题所建立的数据库;四:实验代码InternalFileDemopublic class InternalFileDemo extends Activity {private final String FILE_NAME = "fileDemo.txt";private TextView labelView;private TextView displayView;private CheckBox appendBox ;private EditText entryText;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.main);labelView = (TextView)findViewById(bel);displayView = (TextView)findViewById(R.id.display);appendBox = (CheckBox)findViewById(R.id.append);entryText = (EditText)findViewById(R.id.entry);Button writeButton = (Button)findViewById(R.id.write);Button readButton = (Button)findViewById(R.id.read);writeButton.setOnClickListener(writeButtonListener);readButton.setOnClickListener(readButtonListener);entryText.selectAll();entryText.findFocus();}OnClickListener writeButtonListener = new OnClickListener() {@Overridepublic void onClick(View v) {FileOutputStream fos = null;try {if (appendBox.isChecked()){fos = openFileOutput(FILE_NAME,Context.MODE_APPEND);}else {fos =openFileOutput(FILE_NAME,Context.MODE_PRIVATE);}String text = entryText.getText().toString();fos.write(text.getBytes());labelView.setText("文件写入成功,写入长度:"+text.length());entryText.setText("");} catch (FileNotFoundException e) {e.printStackTrace();}catch (IOException e) {e.printStackTrace();}finally{if (fos != null){try {fos.flush();fos.close();} catch (IOException e) {e.printStackTrace();}}}}};OnClickListener readButtonListener = new OnClickListener() { @Overridepublic void onClick(View v) {displayView.setText("");FileInputStream fis = null;try {fis = openFileInput(FILE_NAME);if (fis.available() == 0){return;}byte[] readBytes = new byte[fis.available()];while(fis.read(readBytes) != -1){}String text = new String(readBytes);displayView.setText(text);labelView.setText("文件读取成功,文件长度:"+text.length());} catch (FileNotFoundException e) {e.printStackTrace();}catch (IOException e) {e.printStackTrace();}}};}SimplePreferenceDemopublic class SimplePreferenceDemo extends Activity {private EditText nameText;private EditText ageText;private EditText heightText;public static final String PREFERENCE_NAME = "SaveSetting";public static int MODE = Context.MODE_WORLD_READABLE +Context.MODE_WORLD_WRITEABLE;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.main);nameText = (EditText)findViewById();ageText = (EditText)findViewById(R.id.age);heightText = (EditText)findViewById(R.id.height);}@Overridepublic void onStart(){s uper.onStart();l oadSharedPreferences();}@Overridepublic void onStop(){s uper.onStop();s aveSharedPreferences();}private void loadSharedPreferences(){SharedPreferences sharedPreferences =getSharedPreferences(PREFERENCE_NAME, MODE);String name = sharedPreferences.getString("Name","Tom");int age = sharedPreferences.getInt("Age", 20);float height = sharedPreferences.getFloat("Height",1.81f);nameText.setText(name);ageText.setText(String.valueOf(age));heightText.setText(String.valueOf(height));}private void saveSharedPreferences(){SharedPreferences sharedPreferences =getSharedPreferences(PREFERENCE_NAME, MODE);SharedPreferences.Editor editor = sharedPreferences.edit();editor.putString("Name", nameText.getText().toString());editor.putInt("Age",Integer.parseInt(ageText.getText().toString()));editor.putFloat("Height",Float.parseFloat(heightText.getText().toString()));mit();}}SQLiteDemoDBAdapter.javapublic class DBAdapter {private static final String DB_NAME = "people.db";private static final String DB_TABLE = "peopleinfo";private static final int DB_VERSION = 1;public static final String KEY_ID = "_id";public static final String KEY_NAME = "name";public static final String KEY_AGE = "age";public static final String KEY_HEIGHT = "height";private SQLiteDatabase db;private final Context context;private DBOpenHelper dbOpenHelper;public DBAdapter(Context _context) {context = _context;}/** Close the database */public void close() {if (db != null){db.close();db = null;}}/** Open the database */public void open() throws SQLiteException {dbOpenHelper = new DBOpenHelper(context, DB_NAME, null, DB_VERSION);try {db = dbOpenHelper.getWritableDatabase();}catch (SQLiteException ex) {db = dbOpenHelper.getReadableDatabase();}}public long insert(People people) {ContentValues newValues = new ContentValues();newValues.put(KEY_NAME, );newValues.put(KEY_AGE, people.Age);newValues.put(KEY_HEIGHT, people.Height);return db.insert(DB_TABLE, null, newValues);}public People[] queryAllData() {Cursor results = db.query(DB_TABLE, new String[] { KEY_ID, KEY_NAME, KEY_AGE, KEY_HEIGHT},null, null, null, null, null);return ConvertToPeople(results);}public People[] queryOneData(long id) {Cursor results = db.query(DB_TABLE, new String[] { KEY_ID, KEY_NAME, KEY_AGE, KEY_HEIGHT},KEY_ID + "=" + id, null, null, null, null);return ConvertToPeople(results);}private People[] ConvertToPeople(Cursor cursor){int resultCounts = cursor.getCount();if (resultCounts == 0 || !cursor.moveToFirst()){return null;}People[] peoples = new People[resultCounts];for (int i = 0 ; i<resultCounts; i++){peoples[i] = new People();peoples[i].ID = cursor.getInt(0);peoples[i].Name =cursor.getString(cursor.getColumnIndex(KEY_NAME));peoples[i].Age =cursor.getInt(cursor.getColumnIndex(KEY_AGE));peoples[i].Height =cursor.getFloat(cursor.getColumnIndex(KEY_HEIGHT));cursor.moveToNext();}return peoples;}public long deleteAllData() {return db.delete(DB_TABLE, null, null);}public long deleteOneData(long id) {return db.delete(DB_TABLE, KEY_ID + "=" + id, null);}public long updateOneData(long id , People people){ContentValues updateValues = new ContentValues();updateValues.put(KEY_NAME, );updateValues.put(KEY_AGE, people.Age);updateValues.put(KEY_HEIGHT, people.Height);return db.update(DB_TABLE, updateValues, KEY_ID + "=" + id, null);}/** 静态Helper类,用于建立、更新和打开数据库*/private static class DBOpenHelper extends SQLiteOpenHelper {public DBOpenHelper(Context context, String name, CursorFactory factory, int version) {super(context, name, factory, version);}private static final String DB_CREATE = "create table " +DB_TABLE+ " ("+ KEY_ID+ " integer primary key autoincrement, " +KEY_NAME+ " text not null, "+ KEY_AGE+ " integer,"+ KEY_HEIGHT + " float);";@Overridepublic void onCreate(SQLiteDatabase _db) {_db.execSQL(DB_CREATE);}@Overridepublic void onUpgrade(SQLiteDatabase _db, int_oldVersion, int _newVersion) {_db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE);onCreate(_db);}}}People.javapublic class People {public int ID = -1;public String Name;public int Age;public float Height;@Overridepublic String toString(){String result = "";result += "ID:" + this.ID + ",";result += "姓名:" + + ",";result += "年龄:" + this.Age + ", ";result += "身高:" + this.Height + ",";return result;}}SQLiteDemo.javapublic class SQLiteDemo extends Activity {/** Called when the activity is first created. */private DBAdapter dbAdepter ;private EditText nameText;private EditText ageText;private EditText heightText;private EditText idEntry;private TextView labelView;private TextView displayView;@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);setContentView(yout.main);nameText = (EditText)findViewById();ageText = (EditText)findViewById(R.id.age);heightText = (EditText)findViewById(R.id.height);idEntry = (EditText)findViewById(R.id.id_entry);labelView = (TextView)findViewById(bel);displayView = (TextView)findViewById(R.id.display);Button addButton = (Button)findViewById(R.id.add);Button queryAllButton = (Button)findViewById(R.id.query_all); Button clearButton = (Button)findViewById(R.id.clear);Button deleteAllButton = (Button)findViewById(R.id.delete_all);Button queryButton = (Button)findViewById(R.id.query);Button deleteButton = (Button)findViewById(R.id.delete);Button updateButton = (Button)findViewById(R.id.update);addButton.setOnClickListener(addButtonListener);queryAllButton.setOnClickListener(queryAllButtonListener);clearButton.setOnClickListener(clearButtonListener);deleteAllButton.setOnClickListener(deleteAllButtonListener);queryButton.setOnClickListener(queryButtonListener);deleteButton.setOnClickListener(deleteButtonListener);updateButton.setOnClickListener(updateButtonListener);dbAdepter = new DBAdapter(this);dbAdepter.open();}OnClickListener addButtonListener = new OnClickListener() { @Overridepublic void onClick(View v) {People people = new People(); = nameText.getText().toString();people.Age =Integer.parseInt(ageText.getText().toString());people.Height =Float.parseFloat(heightText.getText().toString());long colunm = dbAdepter.insert(people);if (colunm == -1 ){labelView.setText("添加过程错误!");} else {labelView.setText("成功添加数据,ID:"+String.valueOf(colunm));}}};OnClickListener queryAllButtonListener = new OnClickListener() { @Overridepublic void onClick(View v) {People[] peoples = dbAdepter.queryAllData();if (peoples == null){labelView.setText("数据库中没有数据");return;}labelView.setText("数据库:");String msg = "";for (int i = 0 ; i<peoples.length; i++){msg += peoples[i].toString()+"\n";}displayView.setText(msg);}};OnClickListener clearButtonListener = new OnClickListener() {@Overridepublic void onClick(View v) {displayView.setText("");}};OnClickListener deleteAllButtonListener = new OnClickListener() { @Overridepublic void onClick(View v) {dbAdepter.deleteAllData();String msg = "数据全部删除";labelView.setText(msg);}};OnClickListener queryButtonListener = new OnClickListener() { @Overridepublic void onClick(View v) {int id = Integer.parseInt(idEntry.getText().toString());People[] peoples = dbAdepter.queryOneData(id);if (peoples == null){labelView.setText("数据库中没有ID为"+String.valueOf(id)+"的数据");return;}labelView.setText("数据库:");displayView.setText(peoples[0].toString());}};OnClickListener deleteButtonListener = new OnClickListener() { @Overridepublic void onClick(View v) {long id = Integer.parseInt(idEntry.getText().toString());long result = dbAdepter.deleteOneData(id);String msg = "删除ID为"+idEntry.getText().toString()+"的数据" + (result>0?"成功":"失败");labelView.setText(msg);}};OnClickListener updateButtonListener = new OnClickListener() { @Overridepublic void onClick(View v) {People people = new People(); = nameText.getText().toString();people.Age =Integer.parseInt(ageText.getText().toString());people.Height =Float.parseFloat(heightText.getText().toString());long id = Integer.parseInt(idEntry.getText().toString());long count = dbAdepter.updateOneData(id, people);if (count == -1 ){labelView.setText("更新错误!");} else {labelView.setText("更新成功,更新数据"+String.valueOf(count)+"条");}}};}。

相关文档
最新文档