21.Android之SQLite数据库学习
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数据库学习的更多相关文章
- android 一个SQLite数据库多个数据表的基本使用框架 (带demo)
android 一个SQLite数据库多个数据表(带demo) 前言 demo演示 一.搭建 二.建立实体类 三.建立数据库操作类 ...
- Qt for Android 打包 SQLite 数据库
Qt for Android 调用 SQLite 数据库时, 怎样将已经存在的数据库附加到 APK 中? 直接在你项目里面的Android源码的根目录下新建一个文件夹assets, 数据库就可以放里面 ...
- Android实现SQLite数据库联系人列表
Android实现SQLite数据库联系人列表 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 实现一个通讯录查看程序: 要求使用SQLite ...
- Android中SQLite数据库操作(1)——使用SQL语句操作SQLite数据库
下面是最原始的方法,用SQL语句操作数据库.后面的"Android中SQLite数据库操作(2)--SQLiteOpenHelper类"将介绍一种常用的android封装操作SQL ...
- android中sqlite数据库的基本使用和添加多张表
看了很多关于android使用sqlite数据库的文章,很多都是介绍了数据库的建立和表的建立,而表通常都是只建立一张,而实际情况我们用到的表可能不止一张,那这种情况下我们又该怎么办呢,好了,下面我教大 ...
- Android SQLite 数据库学习
SQLite 数据库简介 SQLite 是一个轻量级数据库,它是D. Richard Hipp建立的公有领域项目,在2000年发布了第一个版本.它的设计目标是嵌入式的,而且占用资源非常低,在内存中只需 ...
- Android数据存储之SQLite 数据库学习
Android提供了五种存取数据的方式 (1)SharedPreference,存放较少的五种类型的数据,只能在同一个包内使用,生成XML的格式存放在设备中 (2) SQLite数据库,存放各种数据, ...
- Android中SQLite数据库小计
2016-03-16 Android数据库支持 本文节选并翻译<Enterprise Android - Programing Android Database Applications for ...
- android 对sqlite数据库的增删改查等各种操作
转载:http://blog.csdn.net/vrix/article/details/6717090 package com.sqlite.main; import java.io.File; i ...
随机推荐
- POJ 2407 Relatives 【欧拉函数】
裸欧拉函数. #include<stdio.h> #include<string.h> ; int p[N],pr[N],cnt; void init(){ ;i<N;i ...
- [3D跑酷] GameManager
GameManager在游戏中很重要,处理整个游戏的流程,但是在这个类中尽量也只是写一些重要的方法,调用其它类中的方法. 枚举项 函数列表 方法解释 //当玩家碰到障碍(障碍Type,碰撞Positi ...
- 关于eclipse入门开发c/c++文章推荐
1. 关于编译说明. http://www.ibm.com/developerworks/cn/linux/opensource/os-ecc/ 2. 关于快捷键与代码阅读 http://www.cn ...
- Win2003_IIS+PHP+MYSQL 全能服务器配置
WIN2003_IIS+PHP+mysql最新版_全能服务器配置 本次配置PHP的服务器环境:Windows2003+IIS6+ASP+PHP5+MySQL5整个配置过程需要是使用拥有管理员权限的系统 ...
- sqlzoo.net刷题2
Find the largest country (by area) in each continent, show the continent, thename and the area: 找到每个 ...
- 创建服务factory和service方法的区别
factory方法返回的是对象,json或数组,也可以返回字符串类型的数据,但service方法只能返回数据或对象 创建服务有3种方法 $provide.provider('服务名',function ...
- pedestal-工作记
1.基于bootstrap-v3和flat-ui-v3为第十届外语活动月写了个页面 http://www.pedestal.cn/static/activity/index.html 2.资料 boo ...
- 第三章 续:时间控件(TimePicker)
上一章,介绍了datetimepicker使用, 然而,当只需要时分秒的时候,它并不怎么理想,因此又找了一个单独的时间控制插件 现在介绍一个timepicker,用法差不多,但是它只是基于bootst ...
- ASP.NET MVC3 Model验证总结(转)
推荐: ASP.NET MVC的Model元数据与Model模板:预定义模板 http://www.cnblogs.com/artech/archive/2012/05/02/model-meta ...
- Navi.Soft20.WinCE使用手册
1.概述 1.1应用场景 随着物联网的普及,越来越多的制造商对货品从原料配备,加工生产,销售出库等环节的要求和把控越来越高.在此情况之下,传统的ERP软件已经无法满足现有的流程. 移动设备的应用,在很 ...