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

Android SQLite3基础入门教程:建立数据库

 
阅读更多

SQLite3 特征

和传统关系数据库比较

有的:

Sql 语句: SELECT INSERT UPDATE

CREATE DROP

数据类型:

不区分大小写

TEXT 文本

NUMERIC 数值

INTEGER 整型

REAL 小数

NONE 无类型

没有的:

FOREIGN KEY 外键约束

RIGHT OUTER JOIN 和 FULL OUTER JOIN

ALTER TABLE

开始动手

动手之前,确认你的机器中已经配置好如下环境:

Android 开发环境(怎么配置问 Google ,有很多)

本文档适用环境 Android 1.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. }

Java代码

  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数据库的创建和使用

    Android sqlite数据库的创建和使用,入门知识

    SQLite入门资料大全

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

    Android使用SQLite数据库

    很好的android轻量级数据库sqlite使用入门教程

    Android中操作SQLite数据库快速入门教程

    SQLite是Android平台软件开发中会经常用到的数据库产品,作为一款轻型数据库,SQLite的设计目标就是是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的...

    入门级 androidstudio 链接SQLite数据库

    用于帮助刚刚入门androidstudio的朋友 学习链接SQLite数据库

    android数据库经典教材SQLite入门.pdf

    android数据库经典教材SQLite入门.pdf

    Android-SQLite-Beginner-Course:Android SQLite入门课程的所有源代码-android source code

    Android SQLite入门课程 开始使用Android开发所需的所有工具 在这部影片中我当然非常详细,我教你的内置附带在每一个Android设备标准数据库。 学习SQLite的来龙去脉对于每位Android开发人员而言都是基础。 每个应用...

    Android入门_-_数据库支持(SQLite),_内容提供器(ContentProvider).doc

    Android入门_-_数据库支持(SQLite),_内容提供器(ContentProvider).doc

    Android-SQLite3_超基础入门

    SQLite是一个非常流行的嵌入式数据库,它提供了一个清爽的 SQL 接口,相当小的内存占用和高速的响应,更 Happy 的是他还是免费的,大家都可以尽情的使用,很多牛叉的公司(诸如 Adobe,Apple,Google,Sun,Symbian ),...

    android SQLite数据库

    DbOpenHelper.java的压缩文件 博文链接:https://zengyan2012.iteye.com/blog/1000732

    Android sqllite3 基础入门

    slqlite3基础,入门机同学的福音。

    android SQLite数据库基本操作

    新手操作的基本数据库实例,适合android入门

    Android高薪之路:Android程序员面试宝典 李宁

    6 3 在Android中使用SQLite 6 4 面向对象数据库:db4o 第7章 网络与加密 7 1 客户端Socket 7 2 服务端Socket 7 3 非阻塞I O 7 4 WebView控件 7 5 HTTP和HTTPS 7 6 加密技术 第8章 蓝牙与Wi Fi 8 1 蓝牙 8 2 Wi Fi 第...

    android数据库开发经典

    android数据库开发--入门经典 - 基于sqlite的Android数据库开发经典教程,很适合Android初学者

    SQLite教程合集

    包括以下文档 : sqlite3使用详解.pdf SQLite教程.pdf 嵌入式数据库在sqlite3中的应用.pdf SQLite数据库文件格式全面分析.pdf android-database.pdf SQLite入门与分析.pdf

    Android基础教程

    书中不仅结合数独游戏开发案例形象生动地讲解了Android生命周期、用户界面、2D图形、多媒体,以及本地数据存储等基础知识,而且通过“Hello, Android”项目深入探讨了外部通信、基于位置的服务、内置SQLite数据库、...

    SQLite大全

    sqlite3-基础教程 sqlite3使用详解 SQLite权威指南 [SQLite权威指南(第二版)].Grant.Allen.扫描版 SQLite入门与分析 SQLite数据库文件格式全面分析 The Definitive Guide to SQLite The Definitive Guide to ...

    SQLite学习资料大全

    3.SQLite入门与分析 4.SQLite使用详解 5.Android-Database 6.SQLite中文手册 7.SQLite简明教程 8.嵌入式数据库在SQLite中的应用 9.SQLite数据库文件格式全面分析 10.Android的SQLite使用教程 等等.. 下载一个不用去...

Global site tag (gtag.js) - Google Analytics