`
he91_com
  • 浏览: 399391 次
文章分类
社区版块
存档分类
最新评论

android sqlite基础入门

 
阅读更多

背景

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 方式

  1. packageorg.imti;
  2. importandroid.app.Activity;
  3. importandroid.database.Cursor;
  4. importandroid.os.Bundle;
  5. importandroid.view.View;
  6. importandroid.view.View.OnClickListener;
  7. importandroid.widget.Button;
  8. importandroid.widget.EditText;
  9. importandroid.widget.TextView;
  10. /**
  11. *SQLiteDemo
  12. *
  13. *供Activity私有访问的数据库没有使用ContentProvider方式增加查询数据
  14. *
  15. *@authordaguangspecial@gmail.com
  16. *
  17. */
  18. publicclassDbDemoextendsActivity{
  19. EditTextinputTxt;
  20. ButtonbtnAdd;
  21. ButtonbtnViewAll;
  22. TextViewviewAll;
  23. DBHelperdb;
  24. @Override
  25. protectedvoidonCreate(BundlesavedInstanceState){
  26. //TODOAuto-generatedmethodstub
  27. super.onCreate(savedInstanceState);
  28. this.setContentView(R.layout.dbdemo);
  29. //初始化UI
  30. btnAdd=(Button)findViewById(R.id.btnAdd);
  31. btnViewAll=(Button)findViewById(R.id.btnViewAll);
  32. viewAll=(TextView)findViewById(R.id.viewAll);
  33. inputTxt=(EditText)findViewById(R.id.txtInput);
  34. //初始化DB
  35. db=newDBHelper(this);
  36. //初始化监听
  37. OnClickListenerlistener=newOnClickListener(){
  38. publicvoidonClick(Viewv){
  39. if(v.getId()==R.id.btnAdd){
  40. //增加
  41. db.save(inputTxt.getText().toString());
  42. db.close();
  43. }elseif(v.getId()==R.id.btnViewAll){
  44. //浏览所有数据
  45. Cursorcur=db.loadAll();
  46. StringBuffersf=newStringBuffer();
  47. cur.moveToFirst();
  48. while(!cur.isAfterLast()){
  49. sf.append(cur.getInt(0)).append(":").append(
  50. cur.getString(1)).append("\n");
  51. cur.moveToNext();
  52. }
  53. db.close();
  54. viewAll.setText(sf.toString());
  55. }
  56. }
  57. };
  58. btnAdd.setOnClickListener(listener);
  59. btnViewAll.setOnClickListener(listener);
  60. }
  61. }
  1. packageorg.imti;
  2. importandroid.content.Context;
  3. importandroid.database.Cursor;
  4. importandroid.database.sqlite.SQLiteDatabase;
  5. importandroid.util.Log;
  6. /**
  7. *数据库操作工具类
  8. *
  9. *@authordaguangspecial@gmail.com
  10. *
  11. */
  12. publicclassDBHelper{
  13. privatestaticfinalStringTAG="DBDemo_DBHelper";//调试标签
  14. privatestaticfinalStringDATABASE_NAME="dbdemo.db";//数据库名
  15. SQLiteDatabasedb;
  16. Contextcontext;//应用环境上下文Activity是其子类
  17. DBHelper(Context_context){
  18. context=_context;
  19. //开启数据库
  20. db=context.openOrCreateDatabase(DATABASE_NAME,Context.MODE_PRIVATE,null);
  21. CreateTable();
  22. Log.v(TAG,"dbpath="+db.getPath());
  23. }
  24. /**
  25. *建表
  26. *列名区分大小写?
  27. *都有什么数据类型?
  28. *SQLite3
  29. *TEXT文本
  30. NUMERIC数值
  31. INTEGER整型
  32. REAL小数
  33. NONE无类型
  34. *查询可否发送select?
  35. */
  36. publicvoidCreateTable(){
  37. try{
  38. db.execSQL("CREATETABLEt_user("+
  39. "_IDINTEGERPRIMARYKEYautoincrement,"
  40. +"NAMETEXT"
  41. +");");
  42. Log.v(TAG,"CreateTablet_userok");
  43. }catch(Exceptione){
  44. Log.v(TAG,"CreateTablet_usererr,tableexists.");
  45. }
  46. }
  47. /**
  48. *增加数据
  49. *@paramid
  50. *@paramuname
  51. *@return
  52. */
  53. publicbooleansave(Stringuname){
  54. Stringsql="";
  55. try{
  56. sql="insertintot_uservalues(null,'"+uname+"')";
  57. db.execSQL(sql);
  58. Log.v(TAG,"insertTablet_userok");
  59. returntrue;
  60. }catch(Exceptione){
  61. Log.v(TAG,"insertTablet_usererr,sql:"+sql);
  62. returnfalse;
  63. }
  64. }
  65. /**
  66. *查询所有记录
  67. *
  68. *@returnCursor指向结果记录的指针,类似于JDBC的ResultSet
  69. */
  70. publicCursorloadAll(){
  71. Cursorcur=db.query("t_user",newString[]{"_ID","NAME"},null,null,null,null,null);
  72. returncur;
  73. }
  74. publicvoidclose(){
  75. db.close();
  76. }
  77. }

分享到:
评论

相关推荐

    高清彩版 Android SQLite Essentials

    1. **基础知识**:介绍SQLite的基本概念、特点及其在Android平台上的集成方法。包括数据表的设计、SQL语言的基础知识等。 2. **数据管理**:详细讲解如何在Android应用程序中创建、读取、更新和删除数据库记录,...

    android sqlite 简介

    二、Android下的SQLite编译与基础入门 在Android开发中,SQLite通过Android SDK的SQLiteOpenHelper类进行操作。1,首先,我们需要创建一个继承自SQLiteOpenHelper的子类,定义数据库版本号和升级方法。2,然后,我们...

    Android平台sqlite快速入门

    这篇博文“Android平台sqlite快速入门”显然是引导开发者如何在Android应用中有效地使用SQLite数据库。以下是对这个主题的详细说明: 1. **SQLite简介**: SQLite是一个开源的数据库,它不需要服务器进程,可以...

    Android-SQLite3_超基础入门

    ### Android-SQLite3_超基础入门 #### 一、SQLite简介 SQLite是一个非常流行的嵌入式数据库系统,因其简洁的SQL接口、低内存占用以及快速的响应速度而备受推崇。更重要的是,SQLite是完全免费的,这使得无论是个人...

    2015最新Android基础入门教程PDF版打包合集

    《2015最新Android基础入门教程PDF版打包合集》是针对初学者精心准备的一套教育资源,旨在帮助新接触Android开发的朋友们快速掌握基础知识,为日后的深入学习和实践打下坚实的基础。本教程结合了Eclipse和Android ...

    Android-SQLite3_超基础入门.zip

    本资料"Android-SQLite3_超基础入门.zip"显然是针对初学者设计的,旨在帮助开发者快速理解和掌握如何在Android应用中使用SQLite3进行数据存储。 SQLite3在Android中的应用主要涉及到以下几个关键知识点: 1. **...

    Android sqllite3 基础入门

    ### Android SQLite3 基础入门详解 #### 背景与概述 SQLite是一个轻量级的嵌入式关系型数据库管理系统,它以其简洁、高效和跨平台的特点,在移动开发领域,尤其是Android平台上得到了广泛的应用。SQLite对于...

    入门级 androidstudio 链接SQLite数据库

    以下是一些关于"入门级 androidstudio 链接SQLite数据库"的关键知识点: 1. **SQLiteOpenHelper**: 这是Android SDK提供的一种抽象类,用于帮助我们管理SQLite数据库的生命周期。我们需要继承这个类,并重写其中的`...

    Android Studio实现送餐管理系统,优秀课程设计,SQLite数据库,入门必看!

    Android Studio实现送餐管理系统,优秀课程设计,SQLite数据库,入门必看! Android Studio实现送餐管理系统,优秀课程设计,SQLite数据库,入门必看! Android Studio实现送餐管理系统,优秀课程设计,SQLite数据库...

    Android开发从入门到精通【视频教程+课程源码】.rar

    在Android开发领域,掌握基础知识是至关重要的,而这套"Android开发从入门到精通【视频教程+课程源码】"提供了一条系统学习的路径。它不仅包括了详细的视频讲解,还有配套的源代码,旨在帮助初学者从零开始,逐步...

    Android开发从入门到精通_android_

    《Android开发从入门到精通》是一本针对Android Studio的详细开发指南,旨在帮助初学者和有一定基础的开发者深入了解和掌握Android应用开发的核心技术。在学习Android开发的过程中,Android Studio是官方推荐的集成...

    2015最新Android基础入门教程PDF版打包合集.rar

    本资源为2015年发布的Android基础入门教程的PDF合集,对于初学者来说,是一份非常有价值的参考资料。在Android开发领域,基础知识是构建所有复杂应用的基础,这份教程将帮助你逐步掌握这一领域的核心概念。 一、...

    SQLite入门资料大全

    我自己寻找整理的SQLite资料,希望对大家有帮助。清单如下: Android 数据库技术 sqlite3-基础教程 sqlite3使用详解 sqlite命令行手册(中文) ...SQLite入门与分析 SQLite数据库文件格式全面分析

    android开发从入门到精通光盘源代码

    7. **数据存储**:Android提供了多种数据存储方式,如 SharedPreferences 存储简单键值对,SQLite数据库存储结构化数据,以及文件存储等。根据需求选择合适的数据存储方案,是优化应用的重要方面。 8. **多媒体开发...

    Android开发从入门到精通].扶松柏.扫描版

    6. 数据存储:了解Android提供的不同数据存储方式,如SharedPreferences、SQLite数据库、文件系统存储等。 7. 网络通信:学习如何在Android应用中实现网络通信,可能包括HTTP请求、使用WebView加载网页等。 8. ...

    android 从入门到精通电子书

    Android提供了多种数据存储方式,包括SharedPreferences用于轻量级数据存储,SQLite数据库用于结构化数据,以及文件存储和ContentProvider等。理解何时选择合适的存储方式,以及如何进行数据操作,是提升应用功能性...

    Android开发从入门到精通.pdf

    通过学习《Android开发从入门到精通》,读者将能够系统地了解Android开发的全过程,为成为一名合格的Android开发者打下坚实基础。这本书适合完全没有Android开发经验的初学者,也对有一定基础的开发者有很好的复习和...

    android的sqlite增删改查示例

    首先,Android SDK提供了一个SQLiteOpenHelper类,它是所有SQLite操作的基础。这个类负责创建、升级和打开与SQLite数据库的连接。创建自定义的SQLiteOpenHelper子类,你需要重写`onCreate()`和`onUpgrade()`方法。`...

Global site tag (gtag.js) - Google Analytics