Android-SQLite3
超基础入门
背景
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();
}
}
附截图
- 大小: 17.1 KB
分享到:
相关推荐
Android-SQLite3_超基础入门
Android-SQLite3_超基础入门.zip
Android SQLite入门课程 开始使用Android开发所需的所有工具 在这部影片中我当然非常详细,我教你的内置附带在每一个Android设备标准数据库。 学习SQLite的来龙去脉对于每位Android开发人员而言都是基础。 每个应用...
React Native SQLite示例适用于iOS和Android的简单React Native SQLite示例项目入门克隆项目首先,克隆项目$ git clone https://github.com/peacecwz/react-native-sqlite-example.git$ cd react-native-sqlite-...
网络资源的整理合集。 一 。sqlite 内核描述 1,2,3,4. 二 。android下 sqlite 编译,基础入门,存储方式。 三 。 page cashe 事物处理。
用于帮助刚刚入门androidstudio的朋友 学习链接SQLite数据库
很好的android轻量级数据库sqlite使用入门教程
我自己寻找整理的SQLite资料,希望对大家有帮助。清单如下: ...sqlite3-基础教程 sqlite3使用详解 sqlite命令行手册(中文) SQLite权威指南 SQLite教程 SQLite入门与分析 SQLite数据库文件格式全面分析
DbOpenHelper.java的压缩文件 博文链接:https://zengyan2012.iteye.com/blog/1000732
该源码为使用sqlite实现增删改查的一个小示例,为学习android提供一个参考。
sqlite3-基础教程 sqlite3使用详解 SQLite权威指南 [SQLite权威指南(第二版)].Grant.Allen.扫描版 SQLite入门与分析 SQLite数据库文件格式全面分析 The Definitive Guide to SQLite The Definitive Guide to ...
android数据库经典教材SQLite入门.pdf
Android sqlite数据库的创建和使用,入门知识
Android-SQLite3_超基础入门 Android程序开发初级教程 Android创建和使用数据库详细指南 Android官方开发教程中文版(六) android基础入门学习 Android开发必备资料之50例源码汇总 Android开发环境搭建教程...
Android Android Android Android 开发入门 System System System System Requirements Requirements Requirements Requirements The sections below describe the system and software requirements for developing...
Android入门程序_SQLite的使用
一个简单的android sqlite的例子(包含增删改查),是和初学者入门,本人呕心沥血之作,还望大家尊重版权有任何问题可以问我,我的邮箱lipengpeng82010Q@qq.com
NULL 博文链接:https://mypyg.iteye.com/blog/835458
Android入门_-_数据库支持(SQLite),_内容提供器(ContentProvider).doc