Android==》数据篇=》SQLite

SQLite简介:

    SQLite是用C语言编写的开源嵌入式数据库引擎。它支持大多数的SQL92标准,并且可以在所有主要的操作系统上运行。

          --支持高达2TB大小的数据库

--以单个文件的形式存在

--以B-Tree的数据结构形式存储在磁盘

特点主要包括:

     1.轻量级     一个动态库    单文件

2.独立性     没有依赖,无需安装

3.隔离性     全部在一个文件夹中

4.跨平台    支持众多操作系统

5.多语言接口  支持众多编程语言

6.安全性   事务

关于事务处理的安全性问题:

   --通过数据库上的独占性和共享锁来实现独立事务处理。

--多个进程可以再同一时间从同一数据库读取数据,但只有一个可以写入数据。

关于SQLite的数据类型:

      --SQLite支持 NULL,INTEGER,REAL,TEXT和BLOB数据类型

--依次代表:空值,整型值,浮点值,字符串值,二进制对象

动态数据类型(弱引用)

     --当某个值插入到数据库时,SQLite将会检查它的类型,如果该类型与关联的列不匹配,SQLite则会尝试将该值转换成该列的类型,如果不能转换,则该值将作为本身的类型存储。

在Android中如何使用SQLite:

--SQLiteDataBase

--SQLiteOpenHelper

public class MainActivity extends Activity {

private static final String TABLENAME ="stutb";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

SQLiteDatabase db = openOrCreateDatabase("stu.db", MODE_PRIVATE, null);

db.execSQL("create table if not exists stutb (_id integer primary key autoincrement, name text not null,sex text not null, age integer not null)");

ContentValues values = new ContentValues();

values.put("name", "張三");

values.put("sex", "男");

values.put("age", 18);

long rowId = db.insert("stutb", null, values);

values.clear();

values.put("name", "張三feng");

values.put("sex", "男");

values.put("age", 108);

db.insert("stutb", null, values);

values.clear();

values.put("name", "張三丰");

values.put("sex", "男");

values.put("age", 108);

db.insert("stutb", null, values);

values.clear();

values.put("name", "張三feng");

values.put("sex", "男");

values.put("age", 108);

db.insert("stutb", null, values);

values.clear();

values.put("sex", "女");

db.update("stutb", values, "_id>?", new String[]{"3"});//將全部id>3的人的性別改成女

db.delete("stutb", "name like?", new String[]{"%丰%"});//删除所有名字中带丰的人

Cursor c = db.query("stutb", null, "_id>?", new String[]{"0"}, null, null, "name");

if (c != null) {

String[] columns = c.getColumnNames();

while (c.moveToNext()) {

for (String columnName:columns) {

Log.i("info", c.getString(c.getColumnIndex(columnName)));

}

}

c.close();

}

}

SQLiteOpenHelper:

>SQLiteDatabase的帮助类,用于管理数据库的创建和版本更新

>一般是建立一个类继承它,并重写onCreate()和onUpgrade()方法

>方法说明:

* onCreate(SQLiteDataBase db)                                                                创建数据库时调用

*onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)        版本更新时调用

*getReadableDatabase()                                                                             创建或打开一个只读数据库

*getWritableDatabase()                                                                                创建或打开一个读写数据库

代码示例:

public class DBOpenHelper extends SQLiteOpenHelper{

public DBOpenHelper(Context context, String name) {

super(context, name, null, 1);

// TODO Auto-generated constructor stub

}

public DBOpenHelper(Context context, String name, CursorFactory factory,

int version) {

super(context, name, factory, version);

// TODO Auto-generated constructor stub

}

//首次创建数据库的时候调用  可以建库,建表的操作

@Override

public void onCreate(SQLiteDatabase db) {

// TODO Auto-generated method stub

db.execSQL("create table if not exists stutb(_id integer primary key autoincrement,name text not null,sex text not null,age integer not null)");

db.execSQL("insert into stutb(name, sex, age)values(‘张三‘,‘女‘,18)");

}

//当数据库的版本发生变化的时候,会自动执行

@Override

public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

// TODO Auto-generated method stub

}

}

========================

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

DBOpenHelper helper = new DBOpenHelper(MainActivity.this, "stu.db");

SQLiteDatabase db = helper.getWritableDatabase();

Cursor c = db.rawQuery("select*from stutb", null);

if (c!= null) {

String[] cols = c.getColumnNames();

while (c.moveToNext()) {

for (String ColumnName:cols) {

Log.i("info", ColumnName+":"+c.getString(c.getColumnIndex(ColumnName)));

}

}

c.close();

}

db.close();

}

}

时间: 2024-12-25 04:32:22

Android==》数据篇=》SQLite的相关文章

Android数据储存——Sqlite

1.什么是Sqlite? SQLite是轻量级的.嵌入式的.关系型数据库. 2.Sqlite储存在Android系统的哪? 数据库存储的位置在data/data/<packagename>/databases/ 3.使用Sqlite基本流程 [1]创建一个类继承SQLiteOpenHelper并复写其中方法 [2]通过SQLiteOpenHelper的方法获取SQLiteDatabase对象 调用SQLiteOpenHelper的getWritableDatabase()获取一个能读能写的SQ

Android 数据存储——SQLite实例、判断数据库中表是否存在

本文主要记录一下Android SQLiteDatabase中如何判断数据库中表是否存在,以及测试SQLiteDatabase数据库的基本操作.有关SQLite的详细说明,可以查看转载的Android 数据存储--SQLite使用详解 例子: AndroidManifest.xml--没有做任何修改,创建工程默认 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="

[Android]数据篇 --- SharedPreferences

转载请标注:转载于http://www.cnblogs.com/Liuyt-61/p/6637515.html --------------------------------------------------------------- Android数据的四种存储方式: 1.SharedPreferences 2.SQLite 3.Content Provider 4.File ----------------------分割线--------------------------------

Android数据存储——SQLite数据库

本篇整合Android数据库的使用,以保存一个实体类为例子. 先来看下数据库语句: ORM:关系对象映射 增加数据: ContentValues values = new ContentValues(); values.put("name", "小丽"); values.put("phone", "110"); mDB.insert("student",//表名 null, //规避插入语句的错误 valu

Android数据篇

Android提供了多种方式(XML文件方式.文件方式.数据库方式等)进行数据的存储.开发者可以根据数据类型和设计的需要,选择适当的存储方式进行数据存储. 1.XML文件管理 XML文件更多的是用来维护应用或系统的配置文件.在Android中,goole提供了SharedPreferences这个轻型的存储类作为XML文件存储的上层接口,其本质上就是<ket, value>值对. 根据配置信息是否对其他应用开放,SharedPreferences提供了MODE_PRIVATE..MODE_WO

iOS开发-数据篇-sqlite存储

简介:iOS开发的持久化数据存储有4种方式:NSUserDefault和.plist.NSKeyedArchiver和NSKeyedUnarchiver.sqlite3数据库.CoreData. sqlite3和CoreData适合存储大量数据(内容数据等),而另外两种适合存储简单数据(语言,字体,标记等简单数据存储). 准备:这里主要介绍利用sqlite3封装的FMDatabase的数据库,(当然还有PlausibleDatabase.sqlitepersistentobjects等其他封装的

基础篇:6.Android数据库编程---SQLite

简介: 在Android平台上,继承了一个嵌入式关系型数据库---SQLite.SQLite具有跨平台特性,可以在所有主要的操作系统上运行.SQLite通过独占性和共享锁实现独立事务处理,因此多个进程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据,在进行写操作之前,必须先获得独占锁.另一方面,SQLite采取动态数据类型,当某个值插入数据库时,SQLite会检查它的类型,如果该类型与所关联的列不匹配,SQLite则会进行强制转换.SQLite支持以下几种数据类型:NULL(空值).I

android之存储篇——SQLite数据库

转载:android之存储篇_SQLite数据库_让你彻底学会SQLite的使用 SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么. 例如:可以在Integer类型的字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值. 但有一种情况例外:定义为INTEGER PRIMARY KEY的字段只能存储64位整数, 当向这种字段保存除整数以外的数据时,将会产生错误. 另外, SQLite 在解析CREATE TABLE 语句时

Android数据存储 如何搞定SQLite Database

转载请注明出处:明桑Android 在Android平台下有各种不同方法可以实现应用程序数据的存储和管理(SharedPerferences,File,SQLiteDatabase,网络存储),方法的选择依赖于需要存储的数据类型和数据结构.SQLite数据库能够安全而有效地解决结构化数据的存储问题: 这里主要介绍SQLite相关的用法,以及对数据库常见操作的封装. 最后,作为一个综合案例,做一个简单的学生管理的demo,创建student.db,包括name,grade字段,实现增.删.改.查的

【Android的从零单排开发日记】之入门篇(八)——Android数据存储(下)

废话不多说了,紧接着来讲数据库的操作吧.Come On! 提到数据存储问题,数据库是不得不提的.数据库是用来存储关系型数据的不二利器.Android为开发者提供了强大的数据库支持,可以用来轻松地构造基于数据库的应用.Android的数据库应用,依托于当下最流行的开源嵌入式数据库SQLite.在Android中,应用的数据库文件是该应用私有的,存储在应用数据目录下的databases子目录内.从代码结构来看,Android的数据库实现可以分成两个层次,在底层通过C++调用SQLite的接口来执行S