Android的页面显示的数据主要是从数据库中获取数据的,android开发中使用的是SQLite数据库。

SQLite的优点:

  1. 轻量级

    使用 SQLite 只需要带一个动态库,就可以享受它的全部功能, 而且那个动态库的尺寸想当小。

  2. 独立性

    SQLite 数据库的核心引擎不需要依赖第三方软件,也不需要所谓的“安装”。

  3. 隔离性

    SQLite 数据库中所有的信息(比如表、视图、触发器等) 都包含在一个文件夹内,方便管理和维护。

  4. 跨平台

    SQLite 目前支持大部分操作系统,不至电脑操作系统更在众多的手机系统 也是能够运行,比如:Android。

  5. 多语言接口

    SQLite 数据库支持多语言编程接口。

  6. 安全性

    SQLite 数据库通过数据库级上的独占性和共享锁来实现独立事务处理。 这意味着多个进程可以在同一时间从同一数据库读取数据, 但只能有一个可以写入数据。

在Android中连接SQLite需要先创建一个类,并且这个类extends SQLiteOpenHelper,代码如下:

  

package com.example.sql;import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;public class MySQLDatabase extends SQLiteOpenHelper {private static final String db_name = "myDatabse";//自定义的数据库名;private static final int version =1;//版本号public MySQLDatabase(Context context) {super(context, db_name, null, version);}
//该方法会自动调用,首先系统会检查该程序中是否存在数据库名为‘myDatabase’的数据库,如果存在则不会执行该方法,如果不存在则会执行该方法。
    @Overridepublic void onCreate(SQLiteDatabase arg0) {String  sql ="create table wx_user(" +"id int primary key," +"name varchar(30)," +"tou varchar(20)," +"content varchar(50)," +"dateTime varchar(30)" +")";arg0.execSQL(sql);}@Overridepublic void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {// TODO Auto-generated method stub
        }}

SQLiteOpenHelper是SQLiteDatabase的一个帮助类, 用来管理数据库的创建和版本的更新。 一般是建立一个类继承它,并实现它的onCreate和onUpgrade方法。 常用的方法有:

onCreate(SQLiteDatabase db)
创建数据库时调用

onUpgrade(SQLiteDatabase db,int oldVersion , int newVersion)
版本更新时调用

getReadableDatabase()
创建或打开一个只读数据库

getWritableDatabase()
创建或打开一个读写数据库

这里创建了数据库类,接下来是往数据库中插入数据;

//实例化刚才上面我们创建的那个类
MySQLDatabase mySQLDatabase = new MySQLDatabase(MainActivity.this);
/*在通过getReadableDatabase()方法或者通过getWritableDatabase()
获得SQLDatabse类的对象;通过SQLDatabase类的对象来对数据进行操作;*/SQLiteDatabase sqlDatabase =  mySQLDatabase.getReadableDatabase();

SQLDatabase类的常用方法:

  • (long) insert(String table,String nullColumnHack,ContentValues values)

  • (int) delete(String table,String whereClause,String[] whereArgs)

    删除数据行的便捷方法

  • (int) update(String table, ContentValues values, String whereClause, String[] whereArgs) 更新数据行的便捷方法

  • (void) close()

    关闭数据库

  • (Cursor) query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)

    查询指定的数据表返回一个带游标的数据集

  • (Cursor) rawQuery(String sql, String[] selectionArgs)

    运行一个预置的SQL语句,返回带游标的数据集(与上面的语句最大的区别就是防止SQL注入)

  • (void) execSQL(String sql)//这个是执行SQL语句(sql字符串可以是select,delete,或者insert,update中的任意语句)

//往数据库中插入数据的代码,在这里我使用的是execSQL(sql);
for(int i=0;i<20;i++){String sql = "insert into wx_user(id,name,tou,content,dateTime) values("+i+",'张校花"+i+"','aa','你今天会被打','11月19日')";sqlDatabase.execSQL(sql);}

往数据库中参入数据之后,我们再将数据库中的数据取出来看看;我们需要先创建一个实体类;

package com.example.entiy;public class unserInFo {private int id;private String name;private String dateTime;private String tou;private String content;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getContent() {return content;}public void setContent(String content) {this.content = content;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getDateTime() {return datetime;}public void setDateTime(String dateTime) {this.dateTime= dateTime;}public String getTou() {return tou;}public void setTou(String tou) {this.tou = tou;}@Overridepublic String toString() {return "unserInFo [id="+id+,"name=" + name + ", dataTime=" + dataTime+ ", tou="+ tou+ "]";}public unserInFo() {super();// TODO Auto-generated constructor stub
    }}

获取数据

//定义一个集合用来存放所有的结果
List<unserInFo> user = new ArrayList<unserInFo>();
//通过游标来获取表wx_user的信息,
Cursor c=sqlDatabase.query("wx_user", null, null, null, null, null, null);//先判断是否有第一条数据(ic.moveToFirst()将游标移到第一条数据,如果没有第一条数据则返回false,否则返回true)if(c.moveToFirst()){//通过getCount()来决定循环的次数getCount()是游标的总数量。for (int i = 0; i<c.getCount();i++) {unserInFo uif = new unserInFo();//将游标移动到下一条数据
            c.moveToNext();uif.setId(c.getInt(c.getColumnIndex("id")));uif.setLastdate(c.getString(c.getColumnIndex("dateTime")));uif.setName(c.getString(c.getColumnIndex("name")));uif.setZhao(c.getString(c.getColumnIndex("tou")));uif.setContent(c.getString(c.getColumnIndex("content")));user.add(uif);}
}    //最后数据库中获取到的数据就全部存放到user集合中了,我们只需要遍历user就能显示数据了。

转载于:https://www.cnblogs.com/xzmr/p/6113592.html

Android 连接SQLite相关推荐

  1. android连接sqlite进行简单的增删改查和事务管理

    为什么80%的码农都做不了架构师?>>>    Android连接数据库sqlite并进行简单的表创建和增删改查功能参考代码,使用Android单元测试进行验证,首先新建项目进行配置 ...

  2. android连接SQLite数据库-----增加改查+分页

    SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了 ...

  3. Android 数据库 SQLite

    首先关于SQLite的介绍百度上看看就大致了解的差不多了. Android 操作数据库的关键步骤就在于实现API SQLiteOpenHelper,通常这个库辅助类来创建或打开数据库. 废话不多说直接 ...

  4. 独家食用指南系列|Android端SQLite的浅尝辄止

    大家好,本周技术拆解官的第一篇文章,给大家带来的是我们的新主题<独家食用指南系列>.作为新主题的第一篇系列文章,这次给大家分享下Android端SQLite的"食用指南" ...

  5. Android数据库—SQLite

    目录 Android数据库-SQLite 在线查看数据库方法 继承SQLiteOpenHelper的类,加载驱动 在Activity中进行增删改查 增加数据 删除数据 修改数据 查询数据 在界面上进行 ...

  6. android的sqlite导出及数据操作经验分享

    转载请注明 出处( http://blog.csdn.net/alankobe/archive/2011/03/20/6262175.aspx) 分享下android的sqlite导出及数据操作经验. ...

  7. python创建sqlite3数据库_Python连接SQLite数据库

    Python连接SQLite数据库 SQLite 是一种嵌入式数据库,它的数据库就是一个文件.由于 SQLite 本身是 C 写的,而且体积很小,所以,经常被集成到各种应用程序中,甚至在 iOS 和 ...

  8. android-sqlite小实例

    学习android-sqlite数据库的一个小实例,只需要有数据库文档,就可以获取里面的数据,而不需要本地链接.此实例,是将数据库文档mydb.db里面某个表里面的信息显示出来,仅供参考,希望共同进步 ...

  9. Android和SQLite版本对应关系

    Android和SQLite版本对应关系 今天Xamarin群有人问到Android和SQLite版本如何对应,顺手查了一下,贴出来. SQLite 3.8.4.3: • 21-5.0-Lollipo ...

最新文章

  1. ES6新特性3:函数的扩展
  2. Linux大文件传输(转)
  3. Html5本地存储和本地数据库
  4. 【干货】值得收藏的 14 个 Linux 下 CPU 监控工具
  5. android 音频合成_【Android工具】用手机测量噪声的工具软件,噪声仪分贝计,量化噪声声音工具...
  6. [转]序列化悍将Protobuf-Net,入门动手实录
  7. Fabric java sdk 1.4简明教程
  8. 【数字信号调制】基于matlab多进制数字频率调制(4FSK)【含Matlab源码 999期】
  9. 校园水卡M1卡破解写卡
  10. 大多数Nobody游戏下载(带象棋残局攻略) 中文破解版
  11. KEIL平台下新建华大HC32F460单片机工程笔记
  12. SimpleXMLRPC_SimpleXMLRPCServer (Internet) – Python 中文开发手册 - Break易站
  13. 夏季旅游度假照片展示短视频AE模板
  14. 推荐系统(八)FNN模型(FM+MLP=FNN)
  15. 俄油与中石油达成为期10年的协议;苏伊士完成股东联合体收购,苏冰岚履职首席执行官 | 能动...
  16. oracle数据库dblink创建语句_Oracle进阶学习之创建dblink
  17. 微信小程序云开发操作全解
  18. python 字典循环赋值,Python字典循环添加一键多值的用法实例
  19. 流畅的python第十四章可迭代的对象,迭代器和生成器学习记录
  20. ubuntu宽带拨号

热门文章

  1. 查看已有设置_腾讯企点呼叫中心如何查看企点电话产生的数据报表?
  2. crammd5 php,使用CRAMMD5的SMTP身份验证
  3. c# 溢出抛异常_C#中的int是否没有溢出异常?
  4. 计算机专业中职好就业不,内江计算机专业中职好不好
  5. 加拿大28历史开奖鸿蒙,本内特入选加拿大男篮集训名单,史上最水状元秀如今在何处?...
  6. 用python实现(1.求输入的百倍,十位,个位数;2.输入a,b和ab间夹角,计算c边长;3.计算两点间曼哈顿距离;4.计算给定数据的几何平均数;5.计算向量的L1和L2范数)
  7. 20200127:(leetcode)四数之和(动态图解)
  8. java 上调下移_java – 在调整框架大小时,JLabel的位置会更...
  9. spark算子_Spark算子总结
  10. idea导入项目无法解析java