• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > SQLite 在 Android 的应用,sqliteandroid应用

SQLite 在 Android 的应用,sqliteandroid应用

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了android sqlite,android sqlite使用,android sqlite实例,android sqlite数据库,android sqlite查询等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

SQLite 在 Android 的应用,sqliteandroid应用


Android提供了创建和使用SQLite数据库的API(Application Programming Interface,应用程序编程接口)。

在Android系统中,主要由类SQLiteDatabase和SQLiteOpenHelper对SQLite数据库进行管理和操作。

 

(一)SQLiteOpenHelper类


SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本的更新。

因为是个抽象类,所以必须创建一个类来继承它,并实现两个抽象的方法onCreate()和onUpgrade()方法。

方法 说明

SQLiteOpenHelper(Context context, String name, 

  SQLiteDatabase.CursorFactory factory, int version)

构造方法
abstract  void onCreate(SQLiteDatabase db) 创建数据库时调用

abstract  void onUpgrade(SQLiteDatabase db,

  int oldVersion, int newVersion)

升级数据库时调用
void onOpen(SQLiteDatabase db)  打开数据库时调用
SQLiteDatabase getReadableDatabase() 创建或打开数据库
SQLiteDatabase getWritableDatabase() 创建或打开一个读写数据库

下面是一个具体的例子:DatabaseHelper.java

private static class DatabaseHelper extends SQLiteOpenHelper {

    static final String DATABASE_NAME = "College.db";
    static final int DATABASE_VERSION = 1;
    static final String STUDENTS_TABLE_NAME = "students";
    static final String CREATE_DB_TABLE =
        " CREATE TABLE " + STUDENTS_TABLE_NAME +
        " (_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
        " name TEXT NOT NULL, " +
        " grade TEXT NOT NULL);";

    DatabaseHelper(Context context){
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db)
    {
        db.execSQL(CREATE_DB_TABLE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + STUDENTS_TABLE_NAME);
        onCreate(db);
    }
}

 

(二)创建数据库


在Activity中创建数据库对象,可能是在onCreate()方法或事件中创建:

DatabaseHelper database = new DatabaseHelper(this);
SQLiteDatabase db = null;
db = database.getWritableDatabase();

首先实例一个SQLiteOpenHelper帮助类的对象,然后调用该对象的getWritableDatabase() 或 getReadableDatabase()方法 获得SQLiteDatabase 数据库对象。

 

另外2种创建的方法:

1、应用SQLiteDatabase对象openDatabase()方法及openOrCreateDatabase()方法创建数据库;

2、应用Activity继承于父类android.content.Context创建数据库的方法openOrCreateDatabase()来创建数据库。

  此外

1、在DDMS中查看,College.db 生成在/data/data/xxxx(包名)/databases路径下。

2、删除数据库文件,应用android.content.Context类的deleteDatabase(String name)方法来删除指定的数据库。

 

(三)SQLiteDatabase 类


SQLiteDatabase 类的方法有很多,下面是最常用的几个。一般的数据操作,可以使用对应的方法,或者自己写需要的sql语句,再调用execSQL()方法执行。

方法 说明

openOrCreateDatabase(String path, 

  SQLiteDatabase.CursorFactory  factory)

打开或创建数据库

openDatabase(String path,  SQLiteDatabase.CursorFactory  factory,int flags)

打开指定的数据库

insert(String table, String nullColumnHack, ContentValues  values)

新增一条记录

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

删除一条记录

update(String table,ContentValues values, String whereClause,String[]  whereArgs)

修改记录

query(String table,String[] columns, String selection,

  String[]selectionArgs, String groupBy,String having, String orderBy)

查询一条记录
execSQL(String sql) 执行SQL语句
close() 关闭数据库

 

(四)增删改查


对数据记录的操作处理有两种方法:

  • 编写一条对记录进行增、删、改、查的SQL语句,通过exeSQL()方法来执行
  • 使用SQLiteDatabase对象的相应方法进行操作

数据添加

insert(String table, String nullColumnHack, ContentValues  values)方法
第1个参数table:增加记录的数据表;
第2个参数nullColumnHack:空列的默认值,通常为null;
第3个参数ContentValues:为ContentValues对象,其实就是一个键值对的字段名称,键名为表中的字段名,键值为要增加的记录数据值。通过ContentValues对象的put()方法把数据存放到ContentValues对象中。

ContentValues cv = new ContentValues(); //实例化ContentValues用来装载待插入的数据
cv.put("name","Apple");                 //添加学生
cv.put("grade","A");                    //添加成绩
db.insert("user",null,cv);              //执行插入操作

或者

String sql = "insert into students (name,grade) values ('Apple','A');
db.execSQL(sql);

 

数据删除

delete(String table,String whereClause, String[]  whereArgs)方法
第1个参数table:修改记录的数据表;
第2个参数whereClause:删除数据的条件,相当于SQL语句的where子句;
第3个参数whereArgs:删除条件的参数数组。

String whereClause = "name=?";                  //删除的条件
String[] whereArgs = {"Apple"};                 //删除的条件参数
db.delete("students",whereClause,whereArgs);    //执行删除

或者

String sql = "delete from students where name='Apple'";
db.execSQL(sql);

 

数据修改

update(String table,ContentValues values,String whereClause, String[]  whereArgs)方法
第1个参数table:修改记录的数据表;
第2个参数ContentValues:ContentValues对象,存放已作修改的数据的对象;
第3个参数whereClause:修改数据的条件,相当于SQL语句的where子句;
第4个参数whereArgs:修改数据值的数组。

ContentValues cv = new ContentValues();         //实例化ContentValues
cv.put("grade","AA");                           //添加要更改的字段及内容
String whereClause = "username=?";              //修改条件
String[] whereArgs = {"Appke"};                 //修改条件的参数
db.update("students",cv,whereClause,whereArgs); //执行修改

或者

String sql = "update students set grade = 'AA' where name='Apple'";
db.execSQL(sql);

 

数据查询

query(String table, String[] columns, String selection,
String[] selectionArgs, String groupBy, String having, String orderBy)方法
第1个参

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Android之SQLite数据存储,androidsqlite
  • Android之SQLite数据库篇,androidsqlite
  • 在android中使用SQLite数据库
  • Android 上千实例源码分析以及开源分析
  • Android中sqlite之从网上获取数据更新UI
  • Android MeasuerSpce的由来及使用
  • Android触摸事件(三)-触摸事件类使用实例
  • Android 数据库SQLite 写入SD卡,androidsqlite
  • 在 Android 上使用 RxNetty
  • 【原创】Android ExpandableListView使用,expandablelistview

相关文章

  • 2017-05-26Android新手入门2016(13)--阻塞对话框PopupWindow
  • 2017-05-26Android事件分发机制总结
  • 2017-05-26策略模式,java策略模式
  • 2017-05-26android中实现监听的四种方法,android四种方法
  • 2017-05-26Android提权漏洞CVE-2014-7920&CVE-2014-7921分析,android提权漏洞
  • 2017-05-26【Android性能工具】腾讯开源工具APT,androidapt
  • 2017-05-26Android网络编程(一)HTTP协议原理
  • 2017-05-26自动化运维之cobbler批量部署操作系统(一)
  • 2017-05-26ubuntu vncserver搭建
  • 2017-05-26仿网易Tab分类排序控件实现,网易tab排序控件

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android数据存储之SQLite
    • Android-SQLite和SQLiteOpenHelper
    • Android-BroadcastReceiver详解
    • android 自定义title,androidtitle
    • 1.7 界面原型设计
    • 浅谈Android Small插件化框架源码
    • AppLaunchChecker
    • Android 高仿华为手机Tab页滑动导航效果
    • Unity加入Android广告小结,unityandroid小结
    • 悬浮对话框的实现,悬浮对话框实现

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有