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. HDU 2491 Priest John's Busiest Day

    贪心.. #include<iostream> #include<string.h> #include<math.h> #include <stdio.h&g ...

  2. TestLink学习五:TestLink1.9.13和JIRA6.3.6的集成

    testlink和jira的集成,一般步骤: 第1步:System-Issue Tracker Management添加JIRA的db模式.第2步:测试项目管理,“Issue Tracker Inte ...

  3. 转: Github访问慢解决办法

    from: https://yq.aliyun.com/articles/36744 Github访问慢解决办法   zxiaofan 2016-04-20 17:25:00 浏览2156 评论0 摘 ...

  4. zabbix登陆问题:cannot allocate shared memory for collector

    问题说明:在一台zabbix被监控服务器上(64位centos6.8系统,64G内容)启动zabbix_agent,发现进程无法启动,10050端口没有起来! 启动zabbix_agent进程没有报错 ...

  5. 优化mysql主从下的slave延迟问题

    一般而言,slave相对master延迟较大,其根本原因就是slave上的复制线程没办法真正做到并发.简单说,在master上是并发模式(以InnoDB引擎为主)完成事务提交的,而在slave上,复制 ...

  6. ssh相关操作

    连接:ssh username@ip 拷贝ssh客户端文件到ssh服务器: cp 文件名 username@ip:文件名 拷贝ssh服务器文件夹到ssh客户端: scp -r wanglianghe@ ...

  7. 在Sql Server 中使用正则表达式

    CREATE FUNCTION dbo.find_regular_expression ( ), --需要匹配的源字符串 ), --正则表达式 --是否区分大小写,默认为false ) RETURNS ...

  8. 使用js使某个按钮在5秒内不能重复点击

    <head> <!--参考:http://illy.iteye.com/blog/1534276 --> <!-- http://y.dobit.top/Detail/1 ...

  9. ZooKeeper学习第六期---ZooKeeper机制架构

    一.ZooKeeper权限管理机制 1.1 权限管理ACL(Access Control List) ZooKeeper 的权限管理亦即ACL 控制功能,使用ACL来对Znode进行访问控制.ACL的 ...

  10. Android开发探秘之二:导入存在的项目及其注意事项

    网上看到有jsoup写的例子,就下载下来进行了研究,但是发现不会导入,于是就百度一下,发现了方法:也就是依次点击“File”->“Import”->“General”->“Exist ...