Android中使用SQLite数据库

项目源码下载

https://github.com/Wang-Jun-Chao/AndroidProjects

SQLite数据库

轻量级关系型数据库

创建数据库需要使用的api:SQLiteOpenHelper

必须定义一个构造方法:

//arg1:数据库文件的名字
//arg2:游标工厂
//arg3:数据库版本
public MyOpenHelper(Context context, String name, CursorFactory factory, int version){}

数据库被创建时会调用:onCreate方法

数据库升级时会调用:onUpgrade方法

创建数据库


    MyOpenHelper oh =  MyOpenHelper(getContext(), , , );

    SQLiteDatabase db = oh.getWritableDatabase();

getWritableDatabase():打开可读写的数据库

getReadableDatabase():在磁盘空间不足时打开只读数据库,否则打开可读写数据库

在创建数据库时创建表

        public void onCreate(SQLiteDatabase db) {
            // TODO Auto-generated method stub
            db.execSQL("  person (_id    autoincrement,
                    name (), phone (), money ())

数据库的增删改查

SQL语句

*   person (name, phone, money)  (, , );
*   person  name =   _id = ;
*  person  money =   name = ;
*  name, phone  person  name = ;

执行SQL语句实现增删改查


        db.execSQL(,  []{, , });

        Cursor cs = db.rawQuery(,  []{});

测试方法执行前会调用此方法

          ()  Exception {
            .setUp();

            oh =  MyOpenHelper(getContext(), , , );
        }

使用api实现增删改查

插入


        ContentValues cv =  ContentValues();
        cv.put(, );
        cv.put(, );
        cv.put(, );

         i = db.insert(, , cv);

删除


         i = db.(, ,  String[]{, });

修改

        ContentValues cv =  ContentValues();
        cv.put(, );
         i = db.update(, cv, ,  []{});

更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/OS/extra/

查询

        

        Cursor cs = db.query(,  []{, }, ,  []{}, , , );
        (cs.moveToNext()){

             name = cs.getString(cs.getColumnIndex());
             money = cs.getString(cs.getColumnIndex());
            System.out.println(name +  + money);
        }

事务

保证多条SQL语句要么同时成功,要么同时失败

最常见案例:银行转账

事务api

        try {

            dbbeginTransaction();

            dbsetTransactionSuccessful();
        } finally{

            dbendTransaction();
        }

把数据库的数据显示至屏幕

任意插入一些数据

定义业务bean:Person.java

读取数据库的所有数据

        Cursor cs = db.query(, , , , , , );
        (cs.moveToNext()){
             name = cs.getString(cs.getColumnIndex());
             phone = cs.getString(cs.getColumnIndex());
             money = cs.getString(cs.getColumnIndex());

            Person p =  Person(name, phone, money);

            people.add(p);
        }

把集合中的数据显示至屏幕

         LinearLayout ll = (LinearLayout) findViewById(R.id.ll);
         (Person p : people){

             TextView tv =  TextView();
             tv.setText(p.toString());

             ll.addView(tv);
         }

分页查询

        Cursor cs = db.query(, , , , , , , );

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据库
, adapter删除sqlite
, cs
, name
, sqliteopenhelper
, money
, person
, getstring
, rawQuery
Sqliteopenhelper用法
android sqlite数据库、androidsqlite数据库、sqlite数据库的使用、sqlite数据库怎么使用、java使用sqlite数据库,以便于您获取更多的相关知识。

时间: 2024-12-03 19:17:19

Android中使用SQLite数据库的相关文章

Android中的SQLite数据库简介

SQLite简介: SQLite是Android系统采用的一种开源的轻量级的关系型的数据库,Android中允许每个应用程序都拥有自己独立的数据库,每个应用程序的数据库的位置一般在/data/data/<package_name>/databases中.为了方便开发人员的使用,Android的API对增删查改实现了封装,通过SQLiteOpenHelper类可以方便的实现对数据库的创建和管理操作.不过正式的使用数据库之前,我们还要知道两个基本知识点. Content Values 和Curso

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

SQLite是Android平台软件开发中会经常用到的数据库产品,作为一款轻型数据库,SQLite的设计目标就是是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够.下面我们一起来看看针对Android平台的SQlite 3的使用. 以下概念都是在Android平台的SQlite限制下的理解: 数据库基础概念 1.SQlite 通过文件来保存数据库,一个文件就是一个数据库. 2.数据库里又包含数个表格: 3.每个表格里面包含了多个记录

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

SQLite是Android平台软件开发中会经常用到的数据库产品,作为一款轻型数据库,SQLite的设计目标就是是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够.下面我们一起来看看针对Android平台的SQlite 3的使用. 以下概念都是在Android平台的SQlite限制下的理解: 数据库基础概念 1.SQlite 通过文件来保存数据库,一个文件就是一个数据库. 2.数据库里又包含数个表格: 3.每个表格里面包含了多个记录

Android中在SQLite数据库创建的触发器能跨数据库吗?

问题描述 比如有两个APK,第一个APK的数据库名为database1,有一张表table1,在第二个APK中有一个数据库database2,有一张表table2,其中table1和table2的结构是完全一样的,我想实现创建一个触发器,在向table1 insert一条记录的时候,通过触发器项table2插入一条相同的记录,这能实现吗?要怎么才能实现? 解决方案 触发器是一个数据库中的概念,没办法跨数据库,替代方案有Intent Broadcastrpc共享进程(这个方法请参考Phone和Te

Android编程之SQLite数据库操作方法详解

本文实例讲述了Android SQLite数据库操作方法.分享给大家供大家参考,具体如下: SQLite and Android SQLite简介 SQLite是一个非常流行的嵌入式数据库,它支持SQL语言,并且只利用很少的内存就有很好的性能.此外,它还是开源的,任何人都可以使用它. SQLite由以下几个组件组成:SQL编译器.内核.后端以及附件.SQLite通过利用虚拟机和虚拟数据库引擎(VDBE),使调试.修改和扩展SQLite的内核变得更加方便. SQLite支持的数据类型包括: 1.

Android开发中使用SQLite 数据库

SQPte 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能.此外它还是开源的,任何人都可以使用它.许多开源项目((Mozilla, PHP, Python)都使用了 SQPte. SQPte 由以下几个组件组成:SQL 编译器.内核.后端以及附件.SQPte 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试.修改和扩展 SQPte 的内核变得更加方便. 图 1. SQPte 内部结构 开发中使用SQLite 数据库-android sqlite数据库"&g

在android中从sqlite中获得数据很慢

问题描述 在android中从sqlite中获得数据很慢 我的代码是: DatabaseHandler db = new DatabaseHandler(this); System.out.println("Start - " + System.currentTimeMillis()); for (int i = 1; i < db.getChampsCount() + 1; i++) { String name = db.getChampInfo(i, "name&q

sqlite-Android开发中与Sqlite数据库相似的数据库

问题描述 Android开发中与Sqlite数据库相似的数据库 目前Android开发中本地数据库只能用Sqlite数据库嘛?有没有其他数据库可选?(本人知道Sqlite这个很好,但是新手想知道都有什么选择) 解决方案 Android开发之Sqlite数据库android开发之sqlite数据库增删改查Android开发之SQLite数据库 解决方案二: 只能用sqlite,但是对其支持的框架可选 解决方案三: 好像是只能用SQLite 解决方案四: 还是选通用的吧,而且貌似只有sqlite 解

C#中执行Sqlite数据库事务的方式

在 C#中执行Sqlite数据库事务有两种方式:Sql代码和C#代码 1.Sql代码: BEGIN- COMMIT /ROLLBACK 2.C#代码: using (SQLiteConnection conn = SqliteHelper.GetSQLiteConnection()) { DbTransaction trans = conn.BeginTransaction(); try { //Sql语句 trans.Commit();//提交事务 } catch (Exception e)