android数据存储—SQLite

Android数据存储方式—SQLite Android数据存储方式—SQLite 版权声明:本文为博主原创文章,未经博主允许不得转载。 SQLite Android平台嵌入了一个关系型数据库SQLite,和其他数据库不同的是:SQLite存储数据时,不需要指定数据类型 一个字段声明为Integer类型,我们可以将一个字符串存入;一个字段声明为Boolean,我们也可以存入浮点数。 除非是主键被定义为integer,这时只能存储6 阅读详情
  • SQLiteOpenHelper抽象类
  • 该方法通常用4个参数的构造方法
    通过得到实例后调用getWritableDatabase() || getReadableDatabase() 来创建和打开数据库!!
    ~~直接用栗子:
//这里是创建数据库帮助类
public class KnowDBOpenHelper extends SQLiteOpenHelper{
    /*
    * 创建Stories表
    * */
    public static final String CREATE_STORIES = "create table Stories("
            + "id_first integer primary key autoincrement"
            + "id text, "
            + "images text, "
            + "title text)";
           // + "two_table integer" 版成本升级后添加的

    //构造方法实例时出入的参数:第二参数:数据库名, 第三参数:null,第四参数:版本号
    public KnowDBOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_STORIES);//创建stories表
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        switch(oldVersion){
            case 1:
                db.execSQL(CREATE_TWOTABLE);
            case 2:
                db.execSQL("alter table Book add colum two_table integer");
            default:    //这里没有break! 在2版本中Book添加一列信息
        }
    }
}
  • 正常的使用
 //添加数据
        ContentValues values = new ContentValues();
        //插入第一条数据;第一个参数对应表中的列名,第二个参数,添加的数据
        values.put("id",222222);
        values.put("title","今天什么天气");
        values.put("images","http:..22...jpg");
        db.insert("Stories",null , null);
        values.clear();;
        //插入第二条数据
        values.put("id",66666);
        values.put("title","明天什么天气");
        values.put("images","http:..33...jpg");
        db.insert("Stories",null , null);

 //更新数据
          ContentValues values = new ContentValues();
          values.put("title","后天什么天气");
          values.put("images","http:....444...jpg");
          db.update("Stories",values,"id= ?",
          new String[]{"666666"});
        //更新所有 id = ?的行, ?是占位符, 在后面String[ ]中提供数据
        //所有意思是 更新id=666666 这一行的title变更为"后天什么天气" ,images 变更为"http:....444...jpg" !!

//删除数据
        db.delete("Stories",null,null);//删除表中所有内容
        db.delete("Stories","id = ?",new String[]{"222222"});//删除id = 222222这一行的所有内容!
        //也可以将id更改为 >  < 符号都行!

//查询数据
        //调用query()会返回一个Cursor 对象
        //参数依次是:表名,指定查询的 列S,指定where的约束条件,为where的中占位符提供具体的值,指定需要group by的列, 对指定group by的后的结果进一步过滤,指定结果的排序方式
        Cursor cursor = db.query("Stories",null , null,null,null,null,null);
        List<Stories> list = new ArrayList<Stories>();
        if(cursor.moveToFirst()){//光标移到第一行,有数据则返回true
            do{
                //开始遍历Cursor对象
                int     id = cursor.getInt(cursor.getColumnIndex("id"));
                String  title = cursor.getString(cursor.getColumnIndex("title"));
                String  images = cursor.getString(cursor.getColumnIndex("images"));
                Stories story = new Stories(id, title, images);
                list.add(story);//将里面的每个Stories直接添加到集合中,可以返回一个集合对象
            }while (cursor.moveToNext());//光标移到下一个位置,有数据则返回true!
        }
            cursor.close();
        return   list; 
    }
  • 下面方法是吧数据的操作封装起来使用的实战操作!!复用性!
public class KnowDB {
    //数据库名称
    public static final String DB_NAME = "myknow";
    //数据库版本
    public static final int VERSION = 1;

    private static KnowDB knowDB;
    private SQLiteDatabase db;
    /*
    * 构造方法私有化
    * */
    private KnowDB (Context context){
        KnowDBOpenHelper dbOpenHelper = new KnowDBOpenHelper(context,DB_NAME, null, VERSION);
        db = dbOpenHelper.getWritableDatabase();
    }
    /*
    * 获取KnowDB实例
    * */
    public  synchronized static KnowDB getIntance(Context context){
        if(knowDB == null){
            knowDB = new KnowDB(context);
        }
        return  knowDB ;
    }
    /*
    * 将stories存入数据库
    * */
    public void saveStories(Stories stories){
        if(stories != null){
            ContentValues values = new ContentValues();
            values.put("id", stories.getId());
            values.put("images",stories.getImages());
            values.put("title",stories.getTitle());
            db.insert("Stories", null , values);
        }
    }
    /*
    * 从数据库读取所有的Stories信息
    * */
    public List<Stories> loadStories(){
        List<Stories> list = new ArrayList<Stories>();
        Cursor cursor = db.query("Stories",null , null ,null ,null, null, null);
        if(cursor.moveToFirst()){
            do{
                Stories stories = new Stories() ;
                stories.setId(cursor.getInt(cursor.getColumnIndex("id")));
                stories.setImages(cursor.getString(cursor.getColumnIndex("images")));
                stories.setTitle(cursor.getString(cursor.getColumnIndex("title")));
                list.add(stories);

            }while (cursor.moveToNext());
            if(cursor != null){
                cursor.close();
            }
        }

        return list;
    }
    /*
    * 用于更新数据,删除原有的数据
    * */
    public void deleteStories(){
        db.delete("Stories",null ,null);
    }
}
  • 数据库也可以使用事务
KnowDBOpenHelper knowHelper = new KnowDBOpenHelper(this, "Database.db", null, 1);
        SQLiteDatabase db = knowHelper.getWritableDatabase();//这样数据库 和 表 都已经创建成功了
        db.beginTransaction();//开启事务
        try {
        db.delete("Stories",null,null);
       // if(true){
       //         throw new NullPointerException();
       // }如果这try代码中出现异常,数据是删除不成功的!!
        ContentValues values = new ContentValues();
        //插入第一条数据
        values.put("id",45862);
        values.put("title","今天什么天气");
        values.put("images","http:..22...jpg");
        db.insert("Stories",null , null);

        db.setTransactionSuccessful();//事务已经执行成功
        } catch (Exception e) {
        e.printStackTrace();
     }finally {
            db.endTransaction();//结束事务!
        }
    }
实验 Android数据存储和访问-SQLite(一) 一  实验现象 创建表 添加数据 更新数据 删除数据 查询 二   实验部分代码 Mainactivity package com.example.sqllite; import android.app.Activity; import android.content.ContentValues; import android.da 阅读详情

相关推荐

一文告诉你:如何在trae中编译运行STM32程序,并让AI帮你修改代码

本文详细介绍了如何将STM32程序从Keil迁移到国产免费工具Trae,并利用AI进行代码修改的全过程。

水滴爬呀爬 4886

Android学习之SQL基础使用

SQLITE 构化查询语言 (Structured Query Language)是什么SQLite是一个轻量型的数据库。怎么样 轻量级 : SQLite数据库是一个轻量级的数据库, 适用于少量数据的CURD; 文件本质 : SQLite数据库支持大部分SQL语法, 允许使用SQL语句操作数据库, 其本质是一个文件, 不需要安装启动; 数据读写 : SQLite数据库打开只是打开了一个文件的读写流,

Sky的博客 6517

3D视觉-激光三角测量法的概述和原理

激光三角法位移测量的原理是,用一束激光以某一角度聚焦在被测物体表面,然后从另一角度对物体表面上的激光光斑进行成像,物体表面激光照射点的位置高度不同,所接受散射或反射光线的角度也不同,用。激光三角测量法是一种通过图像采集系统采集被测物表面漫反射的激光轮廓,进而基于设备已知的相对位置通过算法处理,获得被测物表面的三维轮廓数据,进而还原目标物体三维空间信息的方法。采用激光三角原理和回波分析原理进行非接触位置、位移测量的精密传感器, 广泛应用于位置、位移 、厚度、半径、形状、振动、距离等几何量的工业测量。

qq_20660115的博客 3921

安卓开发(三)数据存储机制、文件IO、SQLite

文章目录SharedPreferences SharedPreferences

芸兮的博客 1815

MPU6050运动中断唤醒STM32低功耗休眠模式实战

本文详细介绍了如何使用MPU6050运动中断唤醒STM32低功耗休眠模式的实战方案。通过配置MPU6050的运动检测中断作为STM32的唤醒源,实现设备在静止时进入低功耗Stop模式,运动时快速唤醒,大幅延长电池续航。涵盖硬件连接、软件配置、参数调试等关键步骤,并提供实际应用案例和优化建议。

rgv23456789的博客 703

OpenClaw更新后变傻了?一分钟教你快速恢复(OpenClaw更新版本后降智、缺少权限问题的解决方案)

OpenClaw 版本更新后出现降智问题,AI不再执行具体任务。本文详细分析问题原因,提供最简便的解决方案✅

XiaoqiangClub的博客 3883

安卓 sqlite数据存入mysql_详解Android数据存储—使用SQLite数据库

SQLite是Android自带的关系型数据库,是一个基于文件的轻量级数据库。Android提供了3种操作数据的方式,SharedPreference(共享首选项)、文件存储以及SQLite数据库。SQLite数据库文件被保存在/data/data/package_name/databases目录下。一、创建和删除表1.创建表创建表的SQL语句为:CREATE TABLE userInfo_bri...

weixin_42340136的博客 623

PCB板Gerber文件的理解和制作

Gerber文件是PCB生产的关键文件,主要包括:1)走线层(GTL/GBL);2)阻焊层(GTS/GBS);3)丝印层(GTO/GBO);4)板框层(GMx/GKO);5)钢网层(Gtp/GBp);6)钻孔文件(NCdrillFiles)。其中1-10项和15项钻孔文件必须提供,建议包含11-14项辅助钻孔层。Gerber文件不含过孔属性,需提前在AD中设置过孔盖油。导出步骤包括:导出非机械层、机械层和钻孔层,新版AD可通过"文件->制造输出->GerberFiles"操作

qq_37999850的博客 853

掌握Android数据存储的利器:SQLite实战指南

掌握Android数据存储的利器:SQLite实战指南 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在移动应用开发中,数据存储是不可或缺的一环。对于Android开发者而言,SQLite是一个强大且灵活的内置数据库解决方案。为了帮助初学者和中级开发者快速掌握SQLite的使用,我们推出了“Android之SQLite数据存储”项目。这个项目不仅提供了完整的代码示例,...

gitblog_09742的博客 370

国科大学习资料--数据挖掘(刘莹)--第三章习题及参考答案

国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 国科大学习资料–数据挖掘(刘莹)–第三章习题及参考答案 第 3 章分类与回归 3.1简述决策树分类的主要步骤。 答:决策树生成的过程如下: (1)对数据源进行数据预处理, 得到训练集和测试集; (2)对训练集进行训练; (3)对初始决策树进行树剪枝; (4)由所得到的决策树提取分类规则; (5)使用测试数据集进行预测,评估决策树模型; 3.2给定决策树,选项有:(1)将决策树转换成规则,然后对结果

无名何许人的博客 3092

北斗导航 | 卫星/惯导组合导航方法

从组合导航结构方面来讲,卫星/惯导(下文以GPS/INS)组合模式一般分为三种,即松组合、紧组合和超紧组合(即深组合)。

尘世冰封的专栏 1536

Android本地数据存储(SP、SQLite、Room)

Android本地数据存储常用的有三种方式 1、SP存储,key-value的方式存储在本地的xml文件中,/data/data/xxx.xx/shared_prefs/xxx.xml 2、sqlite存储 3、room存储。

不积跬步无以至千里,不积小流无以成江海。一个喜欢学习分享的程序员 6478

SolidWorks 小车底盘 装配体

通过制作小车底盘了解solidworks装配体的部分知识

及时总结 2228

安卓 sqlite数据存入mysql_Android数据存储——SQLite数据库存储

一 创建数据库1.创建一个 “数据库管理器” 实体类来继承 SQLiteOpenHelper抽象类。其中需要重写两个方法用于创建数据库和升级数据库:onCreate()和onUpgrade()。2.数据库管理器的构造方法接收四个参数。第一个是context(环境),第二个是数据库名,第三个是查询数据返回的自定义的cursor、一般都是null,第四个是数据库的版本号。3.数据库管理器实例的两种方法...

weixin_42102401的博客 429

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Android数据存储之SQLite

概览 l  概述 l   CRUD方法详解 l  注意事项   概述 对于大量数据的处理,如果不想将数据存于服务器端,Android API提供了对关系数据库SQLite的支持,在android-SDK中tool目录下已经提供了SQLite的应用程序,用于管理数据库中的数据。当android应用使用SQLite进行数据存储的时候,SQLite数据库是以文件的形式存放在SD卡中的。   Androi...

u011555996的博客 269

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

android笔记21-数据存储之SQLite

数据存储之SQLite android中的SQLite: SQLite的常用函数:   Cursor类:   SQLiteDatabase:  在android中,默认每个程序的数据库是唯一的且不互相干扰; 步骤(调用SQLite自己的语句来完成操作):  第一步:创建数据库并打开;创建SQLiteDatabase对象并

成为大soft虫的梦想屋 651

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

Android 数据存储----SQLite

数据库  SQLite   Oracle    SQLServer   mySql  SQLite  关系型数据 SQLite 数据库 Android系统中集成了轻量级的数据SQLite 一, 特点:   轻量级  只有一个动态的库, 是以单个文件的形式进行存取 零配置 无需安装 跨平台  支持多个操作系统 嵌入式  嵌入手机         在程序

nkdwslsd的专栏 631

Android学习 数据存储 SharedPreference、SQLite

作为一个完整的应用程序,数据的存储与操作是必不可少的。Android系统为我们提供了四种数据存储 方式,分别是:SharedPreference、SQLite、File和ContentProvider。 SharedPreference:一种常用的数据存储方式,其本质就是基于xml文件存储键值对(key-value)数 据,通常用来存储一些简单的配置信息。 SQLite:一个轻量级的数据库,支持基本SQL语法,是Android系统中常被采用的一种数据存储方式。 Android为此数据库提供了一个名为SQ

qq_40809198的博客 601

Android数据存储之SQLite存储

在上一篇文章:http://blog.youkuaiyun.com/qq_34942689/article/details/65633451 中简单的介绍了一下Android中用于数据存储的一些方式,上一篇文章中介绍了SharedPreferences的使用以及我个人的一些封装,接下来呢就来介绍一下Android存储提供的数据存储方式的第二个SQLite数据存储。 SQLite是一种转为嵌入式的轻量级的数据

qq_34942689的博客 903

安卓数据存储宝典:SharedPreferences、SQLite 数据库、文件系统

在安卓应用开发中,数据存储是至关重要的环节,它决定了应用如何保存用户数据、设置和状态。SharedPreferences 是一个轻量级的键值对存储方案,适合存储简单的配置数据、用户偏好设置等。文件系统是安卓提供的一种通用存储机制,可以存储各种类型的数据,包括文本、图片、音频等。SQLite 数据库是嵌入式数据库,适用于存储结构化数据,如用户信息、交易记录等。希望本教程能帮助你深入了解安卓数据存储方式,并选择最合适的方案来满足你的应用需求。,并提供丰富实例和代码,助力你掌握数据存储技巧。

u011464172的专栏 1265

Android SQLite数据存储

SQLite是一款轻量级的关系型数据库,它的运行速度非常快,占用资源很少,通常只需要几百KB的内存就足够了,因而特别适合在移动设备上使用,SQLite不仅支持标准的SQL语法,还遵循了数据库的ACID事务,所以只要你以前使用过其他的关系型数据库,就可以很快的上手SQLite,而SQLite又比一般的数据库要简单很多,它甚至不用设置用户名和密码就可以使用,Android正是把这个功能极为强大的数据库嵌

在路上的大蜗牛 487

Android数据存储选项:SQLite、Room等

Room是Android Jetpack架构组件的一部分,旨在简化SQLite数据库的操作。它为开发者提供了一种方便的方式来定义实体类、DAO(数据访问对象)接口以及数据库的初始化。Room在背后使用了SQLite数据库来存储数据,但在开发者的视角下提供了更高层次的抽象。

虎哥LoveDroid 2386

Android开发之利用SQLite进行数据存储

Android开发之利用SQLite进行数据存储 Android开发之利用SQLite进行数据存储 SQLite数据库简单介绍 Android中怎样使用SQLite 1 创建SQLiteOpenHelper对象并创建表 2 通过SQLiteDatabase对象运行增删改查操作 3 SQLiteDatabase之事务transaction 1.SQLi...

weixin_33896069的博客 560

Android的数据库SQLite进行数据存储与SharePreferences存储

Android的数据库SQLite进行数据存储与SharePreferences存储

徐大大的博客 4774
上一篇: android数据存储—SharedPreference
下一篇: java设计模式—单列模式
buttonXin
博客等级 码龄11年 13粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值