背景
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 方式
-
packageorg.imti;
-
-
importandroid.app.Activity;
-
importandroid.database.Cursor;
-
importandroid.os.Bundle;
-
importandroid.view.View;
-
importandroid.view.View.OnClickListener;
-
importandroid.widget.Button;
-
importandroid.widget.EditText;
-
importandroid.widget.TextView;
-
- /**
- *SQLiteDemo
- *
- *供Activity私有访问的数据库没有使用ContentProvider方式增加查询数据
- *
- *@authordaguangspecial@gmail.com
- *
- */
-
publicclassDbDemoextendsActivity{
- EditTextinputTxt;
- ButtonbtnAdd;
- ButtonbtnViewAll;
- TextViewviewAll;
-
- DBHelperdb;
-
- @Override
-
protectedvoidonCreate(BundlesavedInstanceState){
- //TODOAuto-generatedmethodstub
-
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=newDBHelper(this);
- //初始化监听
- OnClickListenerlistener=newOnClickListener(){
-
-
publicvoidonClick(Viewv){
-
if(v.getId()==R.id.btnAdd){
- //增加
- db.save(inputTxt.getText().toString());
- db.close();
- }elseif(v.getId()==R.id.btnViewAll){
- //浏览所有数据
- Cursorcur=db.loadAll();
- StringBuffersf=newStringBuffer();
- 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);
- }
-
- }
-
packageorg.imti;
-
-
importandroid.content.Context;
-
importandroid.database.Cursor;
-
importandroid.database.sqlite.SQLiteDatabase;
-
importandroid.util.Log;
-
- /**
- *数据库操作工具类
- *
- *@authordaguangspecial@gmail.com
- *
- */
-
publicclassDBHelper{
-
privatestaticfinalStringTAG="DBDemo_DBHelper";//调试标签
-
-
privatestaticfinalStringDATABASE_NAME="dbdemo.db";//数据库名
- SQLiteDatabasedb;
- Contextcontext;//应用环境上下文Activity是其子类
-
- DBHelper(Context_context){
- context=_context;
- //开启数据库
-
- db=context.openOrCreateDatabase(DATABASE_NAME,Context.MODE_PRIVATE,null);
- CreateTable();
- Log.v(TAG,"dbpath="+db.getPath());
- }
-
- /**
- *建表
- *列名区分大小写?
- *都有什么数据类型?
- *SQLite3
- *TEXT文本
- NUMERIC数值
- INTEGER整型
- REAL小数
- NONE无类型
- *查询可否发送select?
- */
-
publicvoidCreateTable(){
-
try{
- db.execSQL("CREATETABLEt_user("+
- "_IDINTEGERPRIMARYKEYautoincrement,"
- +"NAMETEXT"
- +");");
- Log.v(TAG,"CreateTablet_userok");
- }catch(Exceptione){
- Log.v(TAG,"CreateTablet_usererr,tableexists.");
- }
- }
- /**
- *增加数据
- *@paramid
- *@paramuname
- *@return
- */
-
publicbooleansave(Stringuname){
- Stringsql="";
-
try{
- sql="insertintot_uservalues(null,'"+uname+"')";
- db.execSQL(sql);
- Log.v(TAG,"insertTablet_userok");
-
returntrue;
-
- }catch(Exceptione){
- Log.v(TAG,"insertTablet_usererr,sql:"+sql);
-
returnfalse;
- }
- }
- /**
- *查询所有记录
- *
- *@returnCursor指向结果记录的指针,类似于JDBC的ResultSet
- */
-
publicCursorloadAll(){
-
- Cursorcur=db.query("t_user",newString[]{"_ID","NAME"},null,null,null,null,null);
-
-
returncur;
- }
-
publicvoidclose(){
- db.close();
- }
- }
分享到:
相关推荐
1. **基础知识**:介绍SQLite的基本概念、特点及其在Android平台上的集成方法。包括数据表的设计、SQL语言的基础知识等。 2. **数据管理**:详细讲解如何在Android应用程序中创建、读取、更新和删除数据库记录,...
二、Android下的SQLite编译与基础入门 在Android开发中,SQLite通过Android SDK的SQLiteOpenHelper类进行操作。1,首先,我们需要创建一个继承自SQLiteOpenHelper的子类,定义数据库版本号和升级方法。2,然后,我们...
这篇博文“Android平台sqlite快速入门”显然是引导开发者如何在Android应用中有效地使用SQLite数据库。以下是对这个主题的详细说明: 1. **SQLite简介**: SQLite是一个开源的数据库,它不需要服务器进程,可以...
### Android-SQLite3_超基础入门 #### 一、SQLite简介 SQLite是一个非常流行的嵌入式数据库系统,因其简洁的SQL接口、低内存占用以及快速的响应速度而备受推崇。更重要的是,SQLite是完全免费的,这使得无论是个人...
《2015最新Android基础入门教程PDF版打包合集》是针对初学者精心准备的一套教育资源,旨在帮助新接触Android开发的朋友们快速掌握基础知识,为日后的深入学习和实践打下坚实的基础。本教程结合了Eclipse和Android ...
本资料"Android-SQLite3_超基础入门.zip"显然是针对初学者设计的,旨在帮助开发者快速理解和掌握如何在Android应用中使用SQLite3进行数据存储。 SQLite3在Android中的应用主要涉及到以下几个关键知识点: 1. **...
### Android SQLite3 基础入门详解 #### 背景与概述 SQLite是一个轻量级的嵌入式关系型数据库管理系统,它以其简洁、高效和跨平台的特点,在移动开发领域,尤其是Android平台上得到了广泛的应用。SQLite对于...
以下是一些关于"入门级 androidstudio 链接SQLite数据库"的关键知识点: 1. **SQLiteOpenHelper**: 这是Android SDK提供的一种抽象类,用于帮助我们管理SQLite数据库的生命周期。我们需要继承这个类,并重写其中的`...
Android Studio实现送餐管理系统,优秀课程设计,SQLite数据库,入门必看! Android Studio实现送餐管理系统,优秀课程设计,SQLite数据库,入门必看! Android Studio实现送餐管理系统,优秀课程设计,SQLite数据库...
在Android开发领域,掌握基础知识是至关重要的,而这套"Android开发从入门到精通【视频教程+课程源码】"提供了一条系统学习的路径。它不仅包括了详细的视频讲解,还有配套的源代码,旨在帮助初学者从零开始,逐步...
《Android开发从入门到精通》是一本针对Android Studio的详细开发指南,旨在帮助初学者和有一定基础的开发者深入了解和掌握Android应用开发的核心技术。在学习Android开发的过程中,Android Studio是官方推荐的集成...
本资源为2015年发布的Android基础入门教程的PDF合集,对于初学者来说,是一份非常有价值的参考资料。在Android开发领域,基础知识是构建所有复杂应用的基础,这份教程将帮助你逐步掌握这一领域的核心概念。 一、...
我自己寻找整理的SQLite资料,希望对大家有帮助。清单如下: Android 数据库技术 sqlite3-基础教程 sqlite3使用详解 sqlite命令行手册(中文) ...SQLite入门与分析 SQLite数据库文件格式全面分析
7. **数据存储**:Android提供了多种数据存储方式,如 SharedPreferences 存储简单键值对,SQLite数据库存储结构化数据,以及文件存储等。根据需求选择合适的数据存储方案,是优化应用的重要方面。 8. **多媒体开发...
6. 数据存储:了解Android提供的不同数据存储方式,如SharedPreferences、SQLite数据库、文件系统存储等。 7. 网络通信:学习如何在Android应用中实现网络通信,可能包括HTTP请求、使用WebView加载网页等。 8. ...
Android提供了多种数据存储方式,包括SharedPreferences用于轻量级数据存储,SQLite数据库用于结构化数据,以及文件存储和ContentProvider等。理解何时选择合适的存储方式,以及如何进行数据操作,是提升应用功能性...
通过学习《Android开发从入门到精通》,读者将能够系统地了解Android开发的全过程,为成为一名合格的Android开发者打下坚实基础。这本书适合完全没有Android开发经验的初学者,也对有一定基础的开发者有很好的复习和...
首先,Android SDK提供了一个SQLiteOpenHelper类,它是所有SQLite操作的基础。这个类负责创建、升级和打开与SQLite数据库的连接。创建自定义的SQLiteOpenHelper子类,你需要重写`onCreate()`和`onUpgrade()`方法。`...