Google为Andriod的较大的数据处理提供了SQLite,他在数据存储、管理、维护等各方面都相当出色,功能也非常的强大。SQLite具备下列特点:

1.轻量级

使用 SQLite 只需要带一个动态库,就可以享受它的全部功能,而且那个动态库的尺寸想当小。

2.独立性

SQLite 数据库的核心引擎不需要依赖第三方软件,也不需要所谓的“安装”。

3.隔离性

SQLite 数据库中所有的信息(比如表、视图、触发器等)都包含在一个文件夹内,方便管理和维护。

4.跨平台

SQLite 目前支持大部分操作系统,不至电脑操作系统更在众多的手机系统也是能够运行,比如:Android。

5.多语言接口

SQLite 数据库支持多语言编程接口。

6.安全性

SQLite 数据库通过数据库级上的独占性和共享锁来实现独立事务处理。这意味着多个进程可以在同一时间从同一数据库读取数据,但只能有一个可以写入数据。

接下来我们用代码实现下:

XML文件:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <Button
android:id="@+id/create_database"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="创建数据库" /> <Button
android:id="@+id/update_database"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="更改数据库" /> <Button
android:id="@+id/insert"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="插入数据" /> <Button
android:id="@+id/query"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="查询数据" /> <Button
android:id="@+id/update"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="修改数据" /> <Button
android:id="@+id/delete"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="删除数据" /> </LinearLayout>

如图:

再修改主代码,增加数据库辅助操作类:

 package com.example.sqlitedemo;

 import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.util.Log; public class CustomSqlite extends SQLiteOpenHelper { private static final String TAG = "TestSQLite";
private static final int VERSION = 1; // 必须要有构造函数
public CustomSqlite(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
} // 当第一次创建数据库的时候,调用该方法
public void onCreate(SQLiteDatabase db) {
String sql = "create table user(id int, name varchar(20))";
// 输出创建数据库的日志信息
Log.i(TAG, "create Database------------->");
// execSQL函数用于执行SQL语句
db.execSQL(sql);
} // 当更新数据库的时候执行该方法
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// 输出更新数据库的日志信息
Log.i(TAG, "update Database------------->");
} }
 package com.example.sqlitedemo;

 import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button; public class MainActivity extends Activity { private Button btn_createdb = null;
private Button btn_updatedb = null;
private Button btn_insert = null;
private Button btn_query = null;
private Button btn_update = null;
private Button btn_delete = null; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); btn_createdb = (Button) findViewById(R.id.create_database);
btn_updatedb = (Button) findViewById(R.id.update_database);
btn_insert = (Button) findViewById(R.id.insert);
btn_query = (Button) findViewById(R.id.query);
btn_update = (Button) findViewById(R.id.update);
btn_delete = (Button) findViewById(R.id.delete); btn_createdb.setOnClickListener(new MyClickListener());
btn_updatedb.setOnClickListener(new MyClickListener());
btn_insert.setOnClickListener(new MyClickListener());
btn_query.setOnClickListener(new MyClickListener());
btn_update.setOnClickListener(new MyClickListener());
btn_delete.setOnClickListener(new MyClickListener()); } class MyClickListener implements OnClickListener { @Override
public void onClick(View v) {
switch (v.getId()) { case R.id.create_database:
createdb(); // 创建数据库
break; case R.id.update_database:
updatedb(); // 更改数据库
break; case R.id.insert:
insert(); // 插入数据
break; case R.id.query:
query(); // 查询数据
break; case R.id.update:
update(); // 修改数据
break; case R.id.delete:
delete(); // 删除数据
break; default:
break;
}
}
} public void createdb() {
CustomSqlite helper = new CustomSqlite(MainActivity.this, "test_db",
null, 1);
SQLiteDatabase db = helper.getReadableDatabase();
} public void updatedb() {
CustomSqlite helper = new CustomSqlite(MainActivity.this, "test_db",
null, 2);
SQLiteDatabase db = helper.getReadableDatabase(); } public void insert() {
CustomSqlite helper = new CustomSqlite(MainActivity.this, "test_db",
null, 1);
SQLiteDatabase db = helper.getReadableDatabase();
// 生成ContentValues对象 //key:列名,value:想插入的值
ContentValues value = new ContentValues();
// 往ContentValues对象存放数据,键-值对模式
value.put("id", 2015);
value.put("name", "John");
db.insert("user", null, value);
db.close(); } public void query() {
CustomSqlite helper = new CustomSqlite(MainActivity.this, "test_db",
null, 1);
// 得到一个可写的数据库
SQLiteDatabase db = helper.getReadableDatabase();
// 参数1:表名
// 参数2:要想显示的列
// 参数3:where子句
// 参数4:where子句对应的条件值
// 参数5:分组方式
// 参数6:having条件
// 参数7:排序方式
Cursor cursor = db.query("user", new String[] { "id", "name" }, "id=?",
new String[] { "2015" }, null, null, null);
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex("name"));
System.out.println("query---" + name);
} } public void update() { CustomSqlite helper = new CustomSqlite(MainActivity.this, "test_db",
null, 1);
// 得到一个可写的数据库
SQLiteDatabase db = helper.getReadableDatabase();
ContentValues value = new ContentValues();
value.put("name", "update_John");
db.update("user", value, "id=?", new String[] { "2015" });
} public void delete() {
CustomSqlite helper = new CustomSqlite(MainActivity.this, "test_db",
null, 1);
// 得到一个可写的数据库
SQLiteDatabase db = helper.getReadableDatabase();
// 删除条件
String whereClauses = "id=?";
// 删除条件参数
String[] whereArgs = { String.valueOf(2) };
// 调用delete方法,删除数据
db.delete("user", whereClauses, whereArgs);
} }

21.Android之SQLite数据库学习的更多相关文章

  1. android 一个SQLite数据库多个数据表的基本使用框架 (带demo)

    android 一个SQLite数据库多个数据表(带demo) 前言        demo演示        一.搭建        二.建立实体类        三.建立数据库操作类        ...

  2. Qt for Android 打包 SQLite 数据库

    Qt for Android 调用 SQLite 数据库时, 怎样将已经存在的数据库附加到 APK 中? 直接在你项目里面的Android源码的根目录下新建一个文件夹assets, 数据库就可以放里面 ...

  3. Android实现SQLite数据库联系人列表

    Android实现SQLite数据库联系人列表 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个通讯录查看程序: 要求使用SQLite ...

  4. Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库

    下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQL ...

  5. android中sqlite数据库的基本使用和添加多张表

    看了很多关于android使用sqlite数据库的文章,很多都是介绍了数据库的建立和表的建立,而表通常都是只建立一张,而实际情况我们用到的表可能不止一张,那这种情况下我们又该怎么办呢,好了,下面我教大 ...

  6. Android SQLite 数据库学习

    SQLite 数据库简介 SQLite 是一个轻量级数据库,它是D. Richard Hipp建立的公有领域项目,在2000年发布了第一个版本.它的设计目标是嵌入式的,而且占用资源非常低,在内存中只需 ...

  7. Android数据存储之SQLite 数据库学习

    Android提供了五种存取数据的方式 (1)SharedPreference,存放较少的五种类型的数据,只能在同一个包内使用,生成XML的格式存放在设备中 (2) SQLite数据库,存放各种数据, ...

  8. Android中SQLite数据库小计

    2016-03-16 Android数据库支持 本文节选并翻译<Enterprise Android - Programing Android Database Applications for ...

  9. android 对sqlite数据库的增删改查等各种操作

    转载:http://blog.csdn.net/vrix/article/details/6717090 package com.sqlite.main; import java.io.File; i ...

随机推荐

  1. POJ 2407 Relatives 【欧拉函数】

    裸欧拉函数. #include<stdio.h> #include<string.h> ; int p[N],pr[N],cnt; void init(){ ;i<N;i ...

  2. [3D跑酷] GameManager

    GameManager在游戏中很重要,处理整个游戏的流程,但是在这个类中尽量也只是写一些重要的方法,调用其它类中的方法. 枚举项 函数列表 方法解释 //当玩家碰到障碍(障碍Type,碰撞Positi ...

  3. 关于eclipse入门开发c/c++文章推荐

    1. 关于编译说明. http://www.ibm.com/developerworks/cn/linux/opensource/os-ecc/ 2. 关于快捷键与代码阅读 http://www.cn ...

  4. Win2003_IIS+PHP+MYSQL 全能服务器配置

    WIN2003_IIS+PHP+mysql最新版_全能服务器配置 本次配置PHP的服务器环境:Windows2003+IIS6+ASP+PHP5+MySQL5整个配置过程需要是使用拥有管理员权限的系统 ...

  5. sqlzoo.net刷题2

    Find the largest country (by area) in each continent, show the continent, thename and the area: 找到每个 ...

  6. 创建服务factory和service方法的区别

    factory方法返回的是对象,json或数组,也可以返回字符串类型的数据,但service方法只能返回数据或对象 创建服务有3种方法 $provide.provider('服务名',function ...

  7. pedestal-工作记

    1.基于bootstrap-v3和flat-ui-v3为第十届外语活动月写了个页面 http://www.pedestal.cn/static/activity/index.html 2.资料 boo ...

  8. 第三章 续:时间控件(TimePicker)

    上一章,介绍了datetimepicker使用, 然而,当只需要时分秒的时候,它并不怎么理想,因此又找了一个单独的时间控制插件 现在介绍一个timepicker,用法差不多,但是它只是基于bootst ...

  9. ASP.NET MVC3 Model验证总结(转)

    推荐:   ASP.NET MVC的Model元数据与Model模板:预定义模板 http://www.cnblogs.com/artech/archive/2012/05/02/model-meta ...

  10. Navi.Soft20.WinCE使用手册

    1.概述 1.1应用场景 随着物联网的普及,越来越多的制造商对货品从原料配备,加工生产,销售出库等环节的要求和把控越来越高.在此情况之下,传统的ERP软件已经无法满足现有的流程. 移动设备的应用,在很 ...