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. Cg关键字(keywords)

    保留标识符 除了下面列出的,任何以两个的下划线作为前缀(例如,__ newType)的标识符被保留. 注意,矩阵(matrix)和向量类型(vector types)(如half2x3或float4) ...

  2. NSProgress

    苹果公司在 iOS 7 and OS X 10.9引入NSProgress类,目标是建立一个标准的机制用来报告长时间运行的任务的进度.NSProgress引入之后,其最重要的作用是可以在一个app的多 ...

  3. React Native iOS环境搭建

    前段时间React Native for Android发布,感觉React Native会越来越多的公司开始研究.使用.所以周六也抽空搭建了iOS的开发环境,以便以后利用空闲的时间能够学习一下. 废 ...

  4. 安卓版微信内置浏览器,<a href="tel:电话号码"></a> 这个链接失效,不能跳到拨号界面?

    https://segmentfault.com/q/1010000000318831 在URL最后面加“ #mp.weixin.qq.com ”,应该加其他qq.com的二级域名都行,估计是微信的安 ...

  5. WPF在XAML中Binding使用StringFormat属性

    1. 绑定Currency, 如果没有字符的话, =后面需要先加入{}. 不加的话会出问题. 1 <TextBlock Text="{Binding Amount, StringFor ...

  6. SQL 数据结构操作语句

    修改字段 exec sp_rename '表名.[字段名]','新字段名','column' alter table tab_info rename column createname to this ...

  7. U3D assetbundle加载与卸载的深入理解

    using UnityEngine; using System.Collections; using System; public class testLoadFromAB : MonoBehavio ...

  8. SQL Server 阻止了对组件 'Ole Automation Procedures' 的 过程'sys.sp_OACreate' 的访问

    --开启 Ole Automation Procedures sp_configure ; GO RECONFIGURE; GO sp_configure ; GO RECONFIGURE; GO E ...

  9. 【转】使用sklearn做单机特征工程

    这里是原文 说明:这是我用Markdown编辑的第一篇随笔 目录 1 特征工程是什么? 2 数据预处理 2.1 无量纲化 2.1.1 标准化 2.1.2 区间缩放法 2.1.3 无量纲化与正则化的区别 ...

  10. ReactNative之style使用指南

    ReactNative中能使用的css样式有哪些呢Valid style props: [   "alignItems",   "alignSelf",   & ...