背景
SQLite 是一个非常流行的嵌入式数据库,它提供了一个清爽的 SQL 接口,相当小的内存占用和高速的响应,更 Happy 的是他还是免费的,大家都可以尽情的使用,很多牛叉的公司(诸如 Adobe,Apple,Google,Sun,Symbian ),开源项目( Mozilla,PHP,Python )都在产品中装配 SQLite.
Android 中, SQLite 是被集成于 Android runtime ,每个 Android 应用程序都可以欢快的使用 SQLite 数据库,如果你熟悉 JDBC ,那么这个过程就更安逸了。
SQLite3 特征
和传统关系数据库比较
有的:
Sql 语句: SELECT INSERT UPDATE
CREATE DROP
数据类型:
不区分大小写
TEXT 文本
NUMERIC 数值
INTEGER 整型
REAL 小数
NONE 无类型
没有的:
FOREIGN KEY 外键约束
RIGHT OUTER JOIN 和 FULL OUTER JOIN
ALTER TABLE
开始动手
动手之前,确认你的机器中已经配置好如下环境:
Android 开发环境(怎么配置问 Google ,有很多)
本文档适用环境 Android1.0
1, 建库
方式一:命令行方式(适合调试用)
可以使用 adb shell 进入设备后台,命令行方式手动创建,步骤如下:
Eclipse 中启动模拟器之后, cmd 下输入进入设备 Linux 控制台
D:\>adb shell
之后进入应用 data 目录
# cd /data/data
ls 列表目录,查看文件,找到你的项目目录并进入
查看有无 databases 目录,如果没有,则创建一个
# mkdir databases
cd databases 进入并创建数据库
# sqlite3 friends.db
sqlite3 friends.db
SQLite version 3.5.9
Enter ".help" for instructions
sqlite>
ctrl+d 退出 sqlite 提示符 ls 列表目录会看到有一个文件被创建 friends.db
他就是 SQLite 的库文件
# ls
ls
friends.db
方式二:编码方式(使用更多)
android.content.Context 中提供了函数 , 注: Activity 是 Context 的子类
openOrCreateDatabase () 来创建我们的数据库
db = context .openOrCreateDatabase(
String DATABASE_NAME , int Context. MODE_PRIVATE , null );
String DATABASE_NAME 数据库的名字
Int MODE 操作模式 Context.MODE_PRIVATE 等
CursorFactory 指针工厂 ,本例中传入 null ,暂不用
2, 建表
命令行方式
# sqlite3
sqlite> create table widgets (id integer primary key autoincrement,name text);
3, 插入数据
命令行 增加,查询数据
sqlite> insert into widgets values(null,'tom');
insert into widgets values(null,'tom');
sqlite> select * from widgets;
select * from widgets;
1|tom
sqlite>
API 方式
package org.imti;
import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
/**
* SQLite Demo
*
* 供Activity私有访问的数据库 没有使用ContentProvider 方式 增加 查询数据
*
* @author daguangspecial@gmail.com
*
*/
public class DbDemo extends Activity {
EditText inputTxt;
Button btnAdd;
Button btnViewAll;
TextView viewAll;
DBHelper db;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.dbdemo);
// 初始化UI
btnAdd = (Button) findViewById(R.id.btnAdd);
btnViewAll = (Button) findViewById(R.id.btnViewAll);
viewAll = (TextView) findViewById(R.id.viewAll);
inputTxt = (EditText) findViewById(R.id.txtInput);
// 初始化DB
db = new DBHelper(this);
// 初始化监听
OnClickListener listener = new OnClickListener() {
public void onClick(View v) {
if (v.getId() == R.id.btnAdd) {
// 增加
db.save(inputTxt.getText().toString());
db.close();
} else if (v.getId() == R.id.btnViewAll) {
// 浏览所有数据
Cursor cur = db.loadAll();
StringBuffer sf = new StringBuffer();
cur.moveToFirst();
while (!cur.isAfterLast()) {
sf.append(cur.getInt(0)).append(" : ").append(
cur.getString(1)).append("\n");
cur.moveToNext();
}
db.close();
viewAll.setText(sf.toString());
}
}
};
btnAdd.setOnClickListener(listener);
btnViewAll.setOnClickListener(listener);
}
}
package org.imti;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
/**
* 数据库操作工具类
*
* @author daguangspecial@gmail.com
*
*/
public class DBHelper {
private static final String TAG = "DBDemo_DBHelper";// 调试标签
private static final String DATABASE_NAME = "dbdemo.db";// 数据库名
SQLiteDatabase db;
Context context;//应用环境上下文 Activity 是其子类
DBHelper(Context _context) {
context = _context;
//开启数据库
db = context.openOrCreateDatabase(DATABASE_NAME, Context.MODE_PRIVATE,null);
CreateTable();
Log.v(TAG, "db path=" + db.getPath());
}
/**
* 建表
* 列名 区分大小写?
* 都有什么数据类型?
* SQLite 3
* TEXT 文本
NUMERIC 数值
INTEGER 整型
REAL 小数
NONE 无类型
* 查询可否发送select ?
*/
public void CreateTable() {
try {
db.execSQL("CREATE TABLE t_user (" +
"_ID INTEGER PRIMARY KEY autoincrement,"
+ "NAME TEXT"
+ ");");
Log.v(TAG, "Create Table t_user ok");
} catch (Exception e) {
Log.v(TAG, "Create Table t_user err,table exists.");
}
}
/**
* 增加数据
* @param id
* @param uname
* @return
*/
public boolean save(String uname){
String sql="";
try{
sql="insert into t_user values(null,'"+uname+"')";
db.execSQL(sql);
Log.v(TAG,"insert Table t_user ok");
return true;
}catch(Exception e){
Log.v(TAG,"insert Table t_user err ,sql: "+sql);
return false;
}
}
/**
* 查询所有记录
*
* @return Cursor 指向结果记录的指针,类似于JDBC 的 ResultSet
*/
public Cursor loadAll(){
Cursor cur=db.query("t_user", new String[]{"_ID","NAME"}, null,null, null, null, null);
return cur;
}
public void close(){
db.close();
}
}
分享到:
相关推荐
Android-SQLite3_超基础入门
本资料"Android-SQLite3_超基础入门.zip"显然是针对初学者设计的,旨在帮助开发者快速理解和掌握如何在Android应用中使用SQLite3进行数据存储。 SQLite3在Android中的应用主要涉及到以下几个关键知识点: 1. **...
Android SQLite入门课程 开始使用Android开发所需的所有工具 在这部影片中我当然非常详细,我教你的内置附带在每一个Android设备标准数据库。 学习SQLite的来龙去脉对于每位Android开发人员而言都是基础。 每个应用...
3. 整个SQLite数据库存储在单个跨平台磁盘文件中,简化了数据管理。 4. 它非常小巧且轻量级,完全配置后小于400KiB,省略了可选功能后则小于250KiB。 5. SQLite独立无外部依赖,数据库事务完全兼容ACID,允许从多个...
React Native SQLite示例适用于iOS和Android的简单React Native SQLite示例项目入门克隆项目首先,克隆项目$ git clone https://github.com/peacecwz/react-native-sqlite-example.git$ cd react-native-sqlite-...
### Android SQLite3 基础入门详解...以上就是关于Android SQLite3基础入门的相关知识点介绍,希望对初学者有所帮助。通过这些基础知识的学习,你可以开始探索更多关于SQLite的功能,并应用于自己的Android应用开发中。
在Android开发中,SQLite是一个非常重要的组成部分,它是一个轻量级的、开源的、嵌入式的SQL数据库引擎,被广泛用于存储和管理应用程序中的数据。本文将深入探讨Android中的SQLite数据库,特别是通过DbOpenHelper....
这篇博文“Android平台sqlite快速入门”显然是引导开发者如何在Android应用中有效地使用SQLite数据库。以下是对这个主题的详细说明: 1. **SQLite简介**: SQLite是一个开源的数据库,它不需要服务器进程,可以...
二、Android下的SQLite编译与基础入门 在Android开发中,SQLite通过Android SDK的SQLiteOpenHelper类进行操作。1,首先,我们需要创建一个继承自SQLiteOpenHelper的子类,定义数据库版本号和升级方法。2,然后,我们...
以下是一些关于"入门级 androidstudio 链接SQLite数据库"的关键知识点: 1. **SQLiteOpenHelper**: 这是Android SDK提供的一种抽象类,用于帮助我们管理SQLite数据库的生命周期。我们需要继承这个类,并重写其中的`...
【Android Studio应用开发——基础入门与应用实战】是针对初学者和希望提升Android应用程序开发技能的人群设计的一门课程。这门课程由专家方欣和杨勃共同编写,旨在通过电子课件的形式,深入浅出地讲解Android ...
1. **基础知识**:介绍SQLite的基本概念、特点及其在Android平台上的集成方法。包括数据表的设计、SQL语言的基础知识等。 2. **数据管理**:详细讲解如何在Android应用程序中创建、读取、更新和删除数据库记录,...
首先,Android SDK提供了一个SQLiteOpenHelper类,它是所有SQLite操作的基础。这个类负责创建、升级和打开与SQLite数据库的连接。创建自定义的SQLiteOpenHelper子类,你需要重写`onCreate()`和`onUpgrade()`方法。`...
我自己寻找整理的SQLite资料,希望对大家有帮助。清单如下: Android 数据库技术 sqlite3-基础教程 sqlite3使用详解 sqlite命令行手册(中文) ...SQLite入门与分析 SQLite数据库文件格式全面分析
根据提供的文件信息,我们可以归纳并深入探讨以下几个关键的知识点: ### 1. 移动应用开发概述 ...以上内容总结了移动应用开发的基础知识、Android系统的介绍及其开发流程等内容,为初学者提供了全面而深入的理解。
Android Studio实现送餐管理系统,优秀课程设计,SQLite数据库,入门必看! Android Studio实现送餐管理系统,优秀课程设计,SQLite数据库,入门必看! Android Studio实现送餐管理系统,优秀课程设计,SQLite数据库...
3. **Java编程语言**:虽然现在Kotlin已成为Android开发的首选语言,但Java仍然是理解Android系统的基础。了解Java语法、面向对象编程以及异常处理是必不可少的。 4. **Kotlin语言**:Kotlin是Google推荐的现代...
《Android Studio入门实战:打造个人日记本应用》 在Android开发领域,Android Studio作为官方推荐的集成开发环境(IDE),已经成为了开发者们的首选工具。本项目"JoneCool-Android-MyDiary-master"就是一个使用...
android-database sqlite3-基础教程 sqlite3使用详解 SQLite权威指南 ...SQLite入门与分析 SQLite数据库文件格式全面分析 The Definitive Guide to SQLite The Definitive Guide to SQLite Second Edition