- 浏览: 393790 次
- 性别:
- 来自: 大连
文章分类
最新评论
-
surpassno:
南冠楚囚 写道如果是复制一个一位数组,那么改变复制后的数组并不 ...
java的system.arraycopy()方法 -
南冠楚囚:
如果是复制一个一位数组,那么改变复制后的数组并不影响原数组。你 ...
java的system.arraycopy()方法 -
wxq5513866:
有密码,大家不要下载了,下载也解压不了,别上当了
android中调用webservice -
wxq5513866:
happyhan 写道还要密码啊 能否告知密码
android中调用webservice -
happyhan:
还要密码啊 能否告知密码
android中调用webservice
SQLite 是一款非常流行的嵌入式数据库,它支持 SQL 查询,并且只用很少的内存。Android 在运行时(run-time)集成了 SQLite,所以每个 Android 应用程序都可以使用 SQLite 数据库。对于熟悉 SQL 的开发人员来时,在 Android 开发中使用 SQLite 相当简单。但是,由于 JDBC 会消耗太多的系统资源,所以 JDBC 对于手机这种内存受限设备来说并不合适。因此,Android 提供了一些新的 API 来使用 SQLite 数据库,Android 开发中,程序员需要学使用这些 API。数据库存储在 data/< 项目文件夹 >/databases/ 下。
SQLite 由以下几个组件组成:SQL 编译器、内核、后端以及附件。SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展 SQLite 的内核变得更加方便。
除了在文件系统中创建数据库,还可以在内存中创建数据库,在对操作速率要求较高的地方就能发挥作用了。
示例:
首先使用继承自SQLiteOpenHelper的数据库辅助类来帮助我们创建和打开数据库
在Activity中使用该数据库,进行数据的插入,删除,查询,更改,同时也可以使用execSQL完成
Cursor 是每行的集合。使用 moveToFirst() 定位第一行。你必须知道每一列的名称。你必须知道每一列的数据类型。Cursor 是一个随机的数据源。所有的数据都是通过下标取得。
数据库query的结果是返回一个cursor对象,cursor是位于结果集之上的一个游标,可以对结果集进行向前,向后,或随机的访问,而cursor本身是一个接口,提供了对结果集访问的一些方法。根据功能的不同在其子类有着不同的实现。要控制查询时返回的Cursor类型,可以自定义一个继承自CursorFactory类通过实现其newCursor()方法来返回需要的Cursor子类对象,但在CursorFactory传入null的默认情况下,查询操作会返回一个指向第一行数据之前的SQLiteCursor的对象。
在实际的应用编写过程中,更多是通过适配器(Adapter)来将Cursor与适配器控件联系起来。Android为Cursor提供了一个抽象类CursorAdapter,可以方便实现Cursor与适配器的连接。只需要创建一个继承自CursorAdapter的类,实现其bindView()和newView()两个抽象方法,或根据需要重新实现其他方法就可以用此类来构造一个可适配Cursor的适配器
An Adapter object acts as a bridge between an AdapterView and the underlying data for that view. The Adapter provides access to the data items. The Adapter is also responsible for making a View for each item in the data set.
SQLite 由以下几个组件组成:SQL 编译器、内核、后端以及附件。SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展 SQLite 的内核变得更加方便。
除了在文件系统中创建数据库,还可以在内存中创建数据库,在对操作速率要求较高的地方就能发挥作用了。
示例:
首先使用继承自SQLiteOpenHelper的数据库辅助类来帮助我们创建和打开数据库
public class MyHelper extends SQLiteOpenHelper { public static final String TB_NAME = "countrycode"; public static final String ID = "_id"; public static final String COUNTRY = "country"; public static final String CODE = "code"; public MyHelper(Context context, String name, CursorFactory factory,int version) { super(context, name, factory, version); } @Override public void onCreate(SQLiteDatabase db) { // 创建表countrycode db.execSQL("CREATE TABLE IF NOT EXISTS " + TB_NAME + " (" + ID + " INTEGER PRIMARY KEY," + COUNTRY + " VARCHAR," + CODE + " INTEGER)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //删除以前的旧表,创建一张新的空表,极端 可以使用alert table来修改表 db.execSQL("DROP TABLE IF EXISTS "+TB_NAME); onCreate(db); } }
在Activity中使用该数据库,进行数据的插入,删除,查询,更改,同时也可以使用execSQL完成
public class SQLite2 extends Activity { public static final String DB_NAME = "code.db"; public static final int VERSION = 1; MyHelper helper; SQLiteDatabase db; Cursor c; TextView display; Spinner s; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //初始化数据库辅助对象 helper = new MyHelper(this, DB_NAME, null, VERSION); //获得可读写的SQLiteDatabase对象 db = helper.getWritableDatabase(); //用insert方法像数据库中插入"中国 86" ContentValues values = new ContentValues(); values.put(MyHelper.COUNTRY, "中国"); values.put(MyHelper.CODE, 86); db.insert(MyHelper.TB_NAME,MyHelper.ID, values); //在SQLite数据库中将所有声明为INTEGER PRIMARY KEY的列自动识别为自增列 db.insert(MyHelper.TB_NAME,MyHelper.ID,null); values.clear(); values.put(MyHelper.COUNTRY, "意大利"); values.put(MyHelper.CODE, 39); db.update(MyHelper.TB_NAME, values,MyHelper.ID + " = 2",null); //使用execSQL方法插入数据"洪都拉斯 504" db.execSQL("INSERT INTO " + MyHelper.TB_NAME + "(" + MyHelper.COUNTRY + "," + MyHelper.CODE + ") VALUES " + "('洪都拉斯',504)"); //===================================== c = db.query(MyHelper.TB_NAME,null,null,null,null,null, MyHelper.CODE+" DESC"); final int countryIndex = c.getColumnIndexOrThrow(MyHelper.COUNTRY); final int codeIndex = c.getColumnIndexOrThrow(MyHelper.CODE); /*for (c.moveToFirst();!(c.isAfterLast());c.moveToNext()) { String country = c.getString(countryIndex); int code = c.getInt(codeIndex); Toast.makeText(this, country+code, Toast.LENGTH_LONG).show(); }*/ //====================================== s = (Spinner)findViewById(R.id.spinner); display = (TextView)findViewById(R.id.display); SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, c, new String[] {MyHelper.COUNTRY}, new int[] {android.R.id.text1}); //设置子控件的布局方式 adapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item); s.setAdapter(adapter); s.setOnItemSelectedListener(new OnItemSelectedListener(){ public void onItemSelected(AdapterView<?> adapter,View v, int pos, long id) { c.moveToPosition(pos); display.setText(c.getString(codeIndex)); } public void onNothingSelected(AdapterView<?> arg0) { } }); } @Override public void onDestroy() { //程序退出时删除所有行。 db.delete(MyHelper.TB_NAME,null,null); super.onDestroy(); } }
Cursor 是每行的集合。使用 moveToFirst() 定位第一行。你必须知道每一列的名称。你必须知道每一列的数据类型。Cursor 是一个随机的数据源。所有的数据都是通过下标取得。
数据库query的结果是返回一个cursor对象,cursor是位于结果集之上的一个游标,可以对结果集进行向前,向后,或随机的访问,而cursor本身是一个接口,提供了对结果集访问的一些方法。根据功能的不同在其子类有着不同的实现。要控制查询时返回的Cursor类型,可以自定义一个继承自CursorFactory类通过实现其newCursor()方法来返回需要的Cursor子类对象,但在CursorFactory传入null的默认情况下,查询操作会返回一个指向第一行数据之前的SQLiteCursor的对象。
在实际的应用编写过程中,更多是通过适配器(Adapter)来将Cursor与适配器控件联系起来。Android为Cursor提供了一个抽象类CursorAdapter,可以方便实现Cursor与适配器的连接。只需要创建一个继承自CursorAdapter的类,实现其bindView()和newView()两个抽象方法,或根据需要重新实现其他方法就可以用此类来构造一个可适配Cursor的适配器
An Adapter object acts as a bridge between an AdapterView and the underlying data for that view. The Adapter provides access to the data items. The Adapter is also responsible for making a View for each item in the data set.
发表评论
-
android中调用webservice
2011-12-05 14:40 8220上篇文章发布的webservice ... -
android wifi开发
2011-11-29 09:52 2263最近做了个小项目,用到了wifi连接,通过wifi去控制一个w ... -
android读写文件
2011-11-22 09:24 1401android中读写文件分两部分。 1.手机flash读写 ... -
android adt myeclipse8.5离线安装
2011-11-14 15:51 5380Myeclipse 8.6 离线安装ADT 最近想在Myec ... -
android网络与通信
2011-03-31 10:52 1569三种网络接口简述 标准Java接口 java.net.*提 ... -
android多媒体
2011-03-31 09:47 1600OpenCore的另外一个 ... -
数据存储 shared preference
2011-03-30 20:32 1663Android中一共提供了四种数据存储方式: Shared P ... -
双缓冲技术
2011-03-30 19:30 1748java双缓冲技术是 ... -
Android的view重绘
2011-03-30 15:18 4712android中实现view的更新有两组方法,一组是inval ... -
Android中采用的MVC框架
2011-03-30 15:02 1889MVC是当前比较流行的框 ... -
Android单线程模型
2011-03-29 21:32 2968当第一次启动一个Android程序时,Android会自动创建 ... -
TabWidget
2011-03-26 10:03 1421Android TabWidget/TabHost有两种使用方 ... -
状态栏提示Notification
2011-03-26 09:33 1475当有未接电话或者短信时,在手机顶部状态栏就会出现一个小图标,提 ... -
Gallery 拖动效果
2011-03-26 09:01 1214public class Activity01 exten ... -
Android Contentresolver的使用
2011-03-24 16:44 2093Android提供了ContentProvider,一个程序可 ... -
Android ContentProvider
2011-03-24 11:21 2268内容提供者(content provi ... -
android map的使用方法
2011-03-23 16:06 60481 Android Add-ons是Android中的可 ... -
android sdk的快速安装法
2011-03-23 14:53 20371.下载相关文件 下面的7个文件(当然,可以只下载其中一个) ... -
android的位置服务和地图
2011-03-22 19:21 1491实现位置服务的技术有GPS和google网络地图,将这些不同的 ... -
android 使用DOM解析xml
2011-03-22 16:52 1435美国地震信息网http://earthquake.usgs.g ...
相关推荐
这篇博客“Android SQLite学习工具”可能详细介绍了如何在Android环境中使用SQLite进行数据操作,并提供了一个实用的SQLite管理工具——sqlite3.exe。 SQLite数据库在Android中的应用主要包括创建数据库、创建表、...
一个简单的Android SQLite ORM框架不想花资源分的同学可以上我的github主页下载:https://github.com/chenyihan/Simple-SQLite-ORM-Android,因为要传到github,所以代码中的注释和doc文档都是英文的,对自己英文不...
在Android开发中,SQLite是一个内置的关系型数据库系统,用于存储应用程序的数据。SQLite数据库因其轻量级、高效且易于集成的特点,被广泛应用于移动设备。为了更方便地管理和操作SQLite数据库,开发者通常会借助...
验证android sqlite数据库insert 和delete 方法返回值的具体规律 insert 插入一行,如果当前最大id是4,insert新的一条记录id是5 ,如果把5删除, 在insert一条新的记录id还是5,如果删除的是id为4的记录, 再新增一...
在Android开发中,SQLite是一个非常重要的组成部分,它是一个轻量级的数据库系统,允许开发者在移动设备上存储和管理数据。本资料包包含了对Android SQLite的详细文档和源码分析,帮助开发者深入理解其工作原理。 ...
SQLite 是一个轻量级的关系型数据库管理系统,广泛应用于移动设备,尤其是 Android 平台。它无需服务器进程,可直接在应用程序中使用,非常适合存储和管理应用程序数据。Android 系统自始至终内置了 SQLite 支持,...
《Android SQLite Admin 数据库管理软件详解》 在移动应用开发领域,SQLite作为一款轻量级的数据库管理系统,广泛应用于Android平台。它允许开发者在应用程序中存储、管理和检索数据,而无需依赖外部服务器。为了...
android SQLite DBHelper 单例模式 实现 dbhelper=DBHelper.getInstance(this);
在Android应用开发中,SQLite是一个轻量级的关系型数据库,它被广泛用于存储应用程序的数据。SQLite数据库具有体积小、速度快、无需单独服务器进程等优点,非常适合嵌入式系统,如移动设备上的Android应用。本教程将...
在Android应用开发中,SQLite是一个轻量级的关系型数据库,常用于存储应用程序中的结构化数据。SQLite数据库的优势在于它不需要单独的服务进程,而是直接嵌入到应用程序中,提供了高效的本地数据存储解决方案。在这...
**Android SQLite GreenDao类库详解** SQLite是Android操作系统中内置的关系型数据库系统,它轻量级、高效且易于使用,适合存储应用中的结构化数据。然而,直接使用原生的SQLite API进行数据库操作可能会显得繁琐,...
在Android系统中,SQLite是一个轻量级的数据库引擎,它被集成到每个Android设备中,为应用程序提供本地数据存储功能。SQLite3是SQLite的一个版本,适用于Android开发中的数据管理。这个"android sqlite3 demo"是一个...
SQLite是一款轻量级的数据库管理系统,它被广泛应用于Android应用程序中,因为它不需要独立的服务进程,而是内嵌在应用中,提供了高效、可靠的本地数据存储功能。"android SQLite数据库管理软件"是一个专为Android...
在Android开发中,SQLite是一个非常重要的组成部分,它是一个轻量级的、开源的、嵌入式的SQL数据库引擎,被广泛用于存储和管理应用程序中的结构化数据。本案例围绕"android sqlite数据库框架"展开,旨在通过Java注解...
在Android开发中,SQLite是一个非常重要的组件,它是一个轻量级的数据库系统,适用于移动设备。SQLite被广泛用于存储和管理应用程序中的结构化数据。在这个"android Sqlite数据库操作demo"中,我们可以深入理解如何...
### 高清彩版 Android SQLite Essentials #### 一、引言与概述 《高清彩版 Android SQLite Essentials》是一本专注于Android平台下SQLite数据库应用开发的专业书籍。本书由Sunny Kumar Aditya 和 Vikash Kumar ...
在Android开发中,SQLite是一个非常重要的组件,它是一个轻量级的数据库系统,用于存储应用程序中的结构化数据。SQLite数据库支持多种操作,如创建、查询、更新和删除数据,是移动应用开发中首选的本地数据存储解决...
在Android开发中,SQLite是一个非常重要的组件,它是一个轻量级的、开源的、嵌入式的SQL数据库引擎,被广泛用于存储应用中的结构化数据。SQLite数据库的优势在于它不需要独立的服务器进程,而是直接集成在应用程序中...
在Android开发中,SQLite是一个内置的关系型数据库,用于存储应用程序中的结构化数据。SQLite数据库具有轻量级、可移植和自包含的特点,非常适合移动设备。然而,由于其命令行界面和编程API的复杂性,开发者有时需要...
本示例"android sqlite的两种管理方法demo"旨在介绍如何在Android应用中使用SQLite,包括通过Java API和Android SQLite数据库API进行数据库操作。 首先,让我们详细探讨**Java的SQLite管理方法**。在Android中,你...