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. 2014 Super Training #9 C E - Cup 2 --记忆化搜索

    原题:ZOJ 3681 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3681 题意:给一个m,n,m表示m个人,可以把m个 ...

  2. AC日记——逃出克隆岛 (bfs)

    2059 逃出克隆岛  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description oi小组的yh酷爱玩魔兽rpg,每天都 ...

  3. Linux 安装oracle客户端

    环境: CentOS release 6.4 (Final) 一.下载文件 1.首先要查看oracle版本,对应的SQL如下:  select * from V$version ; 2.根据oracl ...

  4. meate 标签使用介绍

    //禁止浏览器从本地计算机的缓存中访问内容 <meta http-equiv="pragma" content="no-cache"> //清楚缓存 ...

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

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

  6. slf4j,log4j,logback 初步使用

    log4j,slf4j,logback简单介绍见 LogBack简易教程 Logback浅析 简单的将,slf4j是一个日志的框架,有各种日志的接口,但是并不包含实际的写日志的方法. log4j,lo ...

  7. 解决memcached不能远程访问的问题

    之前安装好memcached之后,一直是在本机连接使用的,没有出现问题,今天我改用从另一台机器连接到memcached时,却怎么也连接不上.后来一直想大概是防火墙的问题,关闭了防火墙后问题依然存在. ...

  8. BibTex参考文献制作

    &1 制作ref.bib文件 在必应学术或者谷歌学术中搜索文章,这里以我硕士的老板和师兄的一篇文章为例: 两种搜索引擎几乎都差不多,一丢丢区别在下面会讲,点击上图中被引数的旁边那个“引用”按钮 ...

  9. slidingMenu有时候需要关闭侧边栏

    12个页签能往左滑动 但是往右滑动侧边栏就出来了 我们ViewPager的事件被占用了,那么就得关闭侧边栏的事件(第一个页签可以开启) 那么写个方法关闭侧边栏 slidingMenu.setTouch ...

  10. Javascript跨域问题总结

    疯狂的JSONP 关于JSON与JSONP简单总结 window.name实现的跨域数据传输 JavaScript跨域总结与解决办法 flash跨域策略文件crossdomain.xml配置详解