首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

跟我学Android之十三 SQLite数据库操作

下载sqlite-shell-******.zip文件 解压缩后只有一个文件sqlite3,将sqlite3所在的路径加入path环境变量,Sqlite3工具的使用,连接数据库文件。...$ sqlite3test.db <sql.script 上述命令可以在创建数据库的同时使用sql.script进行初始化 SQLite数据库的数据类型 SQLite数据中的列可以存储任意数据类型的数据...//第二个参数表示where后的条件表达式,可以使用?...数据绑定是指将界面和数据进行绑定,在界面和数据之间建立绑定模式有助于数据的呈现 Adapter其实就是界面和数据之间绑定的桥梁,将视图和数据绑定后将会降低维护数据的复杂度 SimpleCursorAdapter...提供了数据层的数据绑定桥梁 SimpleCursorAdapter可以将数据库层的数据提供给列表 1、准备一个列表项的布局用于ListView的展现 <LinearLayout xmlns:

4200

跟我学Android之十三 SQLite数据库操作

$ sqlite3test.db <sql.script 上述命令可以在创建数据库的同时使用sql.script进行初始化 SQLite数据库的数据类型 SQLite数据中的列可以存储任意数据类型的数据...,需要检测数据库是否存在,或者是否要升级,SQLiteOpenHelper提供了创建与升级的能力 public MyHelper(Context context) {super(context, DATABASE_NAME...//第二个参数表示where后的条件表达式,可以使用?...数据绑定是指将界面和数据进行绑定,在界面和数据之间建立绑定模式有助于数据的呈现 Adapter其实就是界面和数据之间绑定的桥梁,将视图和数据绑定后将会降低维护数据的复杂度 SimpleCursorAdapter...提供了数据层的数据绑定桥梁 SimpleCursorAdapter可以将数据库层的数据提供给列表 1、准备一个列表项的布局用于ListView的展现 <LinearLayout xmlns:android

12610
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    :记一次SQLite的使用

    0.前言 最近在重构我的视频播放器,项目有点点复杂,不可能全面的记录 接下来,挑一些要点来记录一下,上下文铺设比较繁琐,有兴趣的可以本系列源码:github 一些播放信息的记录感觉还是放在数据库里好一些...,不然感觉很生硬 以前的SQLite介绍文章有点无病呻吟的感觉,这次来实际用一下,相信感触会更深 1.解决视频播放量的记录问题 2.解决视频进入时恢复到上次播放进度 3.解决查询最近播放的n条记录的问题...,我视图将这两个方法封装成一个 |--- 一开始我是这样的 --------------------- /** * 获取最近播放的记录 * * @param count 条数 * @return...这里说一下,问号只能用来传值,其他的可以拼接字符串 /** * 获取最近播放的记录 * * @param count 条数 * @return 最近播放的count条记录 */ public...String[] getRecent(int count) { return getLimit("last_play_time", count); } 想增加其他的记录,可以自己扩展。

    46410

    android开发之使用SQLite数据库存储

    大家好,又见面了,我是全栈君。 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。...当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。...调用 getReadableDatabase() 或 getWriteableDatabase() 方法,你可以得到 SQLiteDatabase 实例,具体调用那个方法,取决于你是否需要改变数据库的内容...'", null); 在上面例子中,我们查询 SQLite 系统表(sqlite_master)检查 table 表是否存在。...除了表名,其他参数可以是 null。

    2.6K20

    Android SQLite数据库基本用法详解

    就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。...,new String[]{参数1,参数2}); 可参照图片: [sql_show_numberlist.png] 如何判断用户是否已存在?...(释义:查找user数据表中的username列中参数值和“参数1”相同的位置并移动游标) Cursor cursor = db.rawQuery("select \* from user where...两个列中参数值和“参数1”、“参数2”同时相同的位置并移动游标) Cursor cursor = db.rawQuery("select \* from user where username = ?..., new String[]{"参数1","参数2"}); //判断条件:游标是否移动 if (cursor.moveToNext()) { //条件满足,游标移动,即数据库中可以找到匹配数据

    2.2K30

    android之存储篇_SQLite存储方式「建议收藏」

    大家好,又见面了,我是全栈君。...BLOB: 大数据   在SQLite中,并没有专门设计BOOLEAN和DATE类型,因为BOOLEAN型可以用INTEGER的0和1代替true和false,而DATE类型则可以拥有特定格式的TEXT...关于SQLite的更多资料,请参看:http://www.sqlite.org/   在Android系统中提供了android.database.sqlite包,用于进行SQLite数据库的增、删、改...c.moveToNext(); } 查询结果如下图  可以清晰的在查询结果中,红线上下的数据是完全一致的,也就是说query和rawQuery方法的不同仅仅在于所需参数的不同。...本人更喜欢rawQuery的方式,因为此方式更接近传统Java开发,也可以由专业DBA来书写SQL语句,这样更符合MVC的思想,而且这样的代码可读性更高。

    1.2K20

    Android 渗透测试学习手册 第六章 玩转 SQLite

    由于我们对USER_RECORDS更感兴趣,我们将首先继续查看表中的各个列,稍后我们将转储列字段中的数据。...在SQLite中,.dump将创建一个列表,包含从数据库创建到现在为止所执行的所有 SQL 操作。...rawQuery方法实际上只是执行任何传递给它的 SQL 查询。另一个类似于rawQuery的方法是execSQL方法,它和rawQuery一样脆弱。...前面的 SQL 查询用于验证用户的登录凭据,然后显示其在注册期间使用的信息。所以,这里的 SQL 引擎检查用户名和密码是否匹配在一行,如果是这样,它返回一个布尔值TRUE。...,例如1 = 1,它将在所有情况下返回TRUE,如下面的截图所示: 此外,我们可以使用 Drozer 模块app.provider.insert,并通过指定参数和要更新的数据类型,将我们自己的数据插入

    85020

    Android之SQLite使用

    就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件....使用SQLiteDatabase可以打开数据库,也可以对数据库进行操作。...因此,onCreate()方法一般用来在新创建的数据库中建立表、视图等数据库组建。也就是说oncreate()方法在数据库文件第一次创建时调用。...也就是说,当数据库第一次创建时会有一个初始的版本号。当需要对数据库中的表、视图等组建升级时可以增大版本号,再重新创建它们。...query()、rawQuery() 查询数据库 insert() 插入数据 delete() 删除数据 getWritableDatabase() 创建或打开可以读/写的数据库,通过返回的SQLiteDatabase

    63020

    【Android 应用开发】Android 数据存储 之 SQLite数据库详解

    注意 : 该方法 可以 进行增删改操作,  不能进行查询 操作; 该方法适用于 :修改表结构,创建和删除表 触发器 视图 索引等,重建数据库表的索引,数据库升级,事物中保存点,没有返回值的语句;...:  参数① distinct : 是否去重复, true 去重复; 参数② table : 要查询的表名; 参数③ columns : 要查询的列名, 如果为null, 就会查询所有的列; 参数④...: 使用虚拟机运行程序在 data/data/包名 安装目录下, 数据库文件在里面可以找到; 打开数据库 : 进入cmd命令行, 使用sqlite3 数据库文件 命令打开数据库; 常用的sqlite3...SQLite可以接受varchar(n), char(n), decimal(p,s) 等数据类型, 不过内部的机制使将这个数据类型转换成上面的五种数据类型进行存储; 无类型限制: SQLite允许将各种类型的数据保存到各种类型的字段中..., 没有严格的某个字段 必须存放某个类型的数据这样的限制, 因此创建数据库 和 插入数据的时候不用关心这个列的数据类型; -- eg: 在SQLite中可以将字符串数据放到整型字段中, 但是主键id,

    2.5K10

    数据存储之-SQLite数据库一

    虽然只有五种,但是对于varchar,char等其他数据类型都是可以保存的;因为SQLite有个最大的特点: 你可以各种数据类型的数据保存到任何字段中而不用关心字段声明的数据类型是什么,比如你 可以在Integer...)) SQlite通过文件来保存数据库,一个文件就是一个数据库,数据库中又包含多个表格,表格里又有 多条记录,每个记录由多个字段构成,每个字段有对应的值,每个值我们可以指定类型,也可以不指定 类型(主键除外...) Android内置的SQLite是SQLite 3版本的~ ---- 几个相关的类: SQLiteOpenHelper:抽象类,我们通过继承该类,然后重写数据库创建以及更新的方法, 我们还可以通过该类的对象获得数据库实例...方法1:使用SQLite图形化工具查看db文件 我使用的是SQLite Expert Professional。 把我们的db文件导出到电脑桌面,打开SQLiteExpert ?...moveToPrevious():移动到上一条记录 getCount( )获得总得数据条数 isFirst():是否为第一条记录 isLast():是否为最后一项 moveToPosition(int)

    67620

    Android SQLite 数据库学习

    比起Mysql、PostgreSQL 这两款开源数据库管理系统来讲,SQLite的处理速度更快。   SQLite 没有服务器进程,它通过文件保存数据,该文件是跨平台的,可以放在其他平台中使用。...因此,可以将各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型。 SQLite 数据库创建   在Android系统中,创建SQLite数据库是非常简单的。...数据库使用   前面介绍了SQLite 数据库及如何创建数据库,接下来将针对SQLite数据库的增、删、改、查操作进行详细讲解。...  c.isLast();    //是否指向最后一条  c.isBeforeFirst();  //是否指向第一条之前  c.isAfterLast();    //是否指向最后一条之后 ...,new String[]{id});   从上述代码可以看出,查询操作与增、删、改操作有所不同,前面三个操作都是通过execSQL()方法执行SQL语句,而查询操作使用的是rawQuery()方法。

    1.2K00

    12.Android-SQLiteOpenHelper使用

    1.SQLite介绍 SQLite,是一款轻型的数据库,它的优缺点有如下: 轻量级,适合嵌入式设备,并且本身不依赖第三方的软件,使用它也不需要“安装”。...可能会被写操作独占,从而导致其它读写操作阻塞或出错 2.SQLiteOpenHelper介绍 为了在本地创建SQLite数据库,我们需要创建一个SQLiteOpenHelper的子类,这里取名的为MyOpenHelper...:上下文 //第二个参数:数据库文件的名字,如果传入null 则表示创建临时数据库,在应用退出之后,数据就会丢失 //第三个参数:游标工厂 如果使用系统默认的游标工厂就传入null,一般都填null /...如果添加新列,可以使用ALTER TABLE将它们插入活动表。如果重命名或删除列,可以使用ALTER TABLE重命名旧表,然后创建新表,然后用旧表的内容填充新表。...如下图所示,可以看到我们刚刚操作的数据库: ? 打开后,如下图所示,就可以看到我们刚刚写入的数据: ?

    1.1K10

    Android SQLite数据库基本操作

    号理解成一个C语言里面的占位符,然后通过 Object[] 数组中的内容补全,下同 * 参数中的 Object[] 数组是一个通用的数组,里面的数据可以转换为任意类型的数据,通过这个完成不同数据类型变量之间的储存...SQL语句中的插入、更改、删除操作,用rawQuery 方法来执行SQL语句的查询语句。...Ok,整个工程的项目视图(可能有些多余。。。): ? 好了,运行一下: ?...显示文件中的子文件目录,接下来我们就可以对数据库文件进行操作了: 输入 sqlite3 数据库名称, 就可以对数据库进行操作了: 输入 .table 来查看当前数据库文件中的表格目录, 结果如下...1, 参数2…) values(参数1的值, 参数2的值…) 或者:insert into 表名 values(参数1的值, 参数2的值) 例:insert into person(_id, name

    1.2K30

    android读取sqlite数据库的数据并用listview显示

    大家好,又见面了,我是你们的朋友全栈君。...统一回复一个问题,有些小伙伴私信问我如何更换数据库进行读取,本篇仅限于读取静态的数据库文件,如果是读取静态数据库文件只需要替换掉文件并对代码里的数据库字段进行修改就可以了。...因为当时是读本科的时候写的,那个时候懂得并不是很多,想通过接口调用方式读取数据库就不用看啦~ ———————————————-以下写于2018年———————————————– android读取sqlite...数据库的数据并用listview显示 刚刚接触android,老师给了我了几个班级信息的excel,让我做一个考勤的系统出来,本篇仅记录了真机调试下,读取已有静态数据库并显示在listview中。...sqlite可视化软件SQLite Expert Professional 5 已将excel表转化为的数据库 student1.db。 在AS中创建assets文件夹并将db文件拷贝进去。

    2.4K20

    Android:SQLiteOpenHelper类(SQLlite数据库操作)详细解析

    前言 SQLite数据库操作在Android开发中非常常用 今天我将带大家全面了解关于SQLite数据库的操作(增、删、查、改) ---- 目录 ? ---- 1....Android提供了对 SQLite数据库的完全支持,应用程序中的任何类都可以通过名称来访问任何的数据库,但是应用程序之外的就不能访问。...,然后使用query()或rawQuery()方法 查询数据库不能使用execSQL方法 下面我将一一介绍。...将所有的SQL语句都组织到一个字符串中,使用占位符代替实际参数(selectionArgs) db.rawQuery(String sql, String[] selectionArgs); db.query...总结 通过阅读本文,你将全面了解Android SQLite数据库中的所有操作、 接下来会介绍继续介绍Android开发中的相关知识,有兴趣可以继续关注Carson_Ho的安卓开发笔记 ---- 请帮顶

    30.7K1611

    Carson带你学Android:SQLlite数据库操作全解析(SQLiteOpenHelper类)

    前言 在Android开发中,主要的数据存储有5种,具体如下 其中,SQLite数据库的存储方式 非常常用 今天我将带大家全面了解关于Android SQLite数据库的操作(增、删、查、改) 目录...(Cursor) rawQuery(String sql, String[] selectionArgs) //运行一个预置的SQL语句,返回带游标的数据集(与上面的语句最大的区别 = 防止SQL...具体使用 使用步骤 = 自定义数据库子类(继承SQLiteOpenHelper类)、创建数据库 & 操作数据库(增、删、查、改) 下面,我将逐一介绍每个步骤 3.1 自定义数据库子类(继承 SQLiteOpenHelper...// table:要操作的表 // columns:查询的列所有名称集 // selection:WHERE之后的条件语句,可以使用占位符...// distinct可以指定“true”或“false”表示要不要过滤重复值 // 所有方法将返回一个Cursor对象,代表数据集的游标 //

    98320

    【Android】数据存储(三) 数据库(SQLite)

    SQLite 前言 之前介绍过Android中保存数据的两种方式:SharedPreferences和File,这篇介绍另一种存储数据的方式——数据库。...数据库:简单来说可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 想必大家对数据库都不陌生,想当年上数据库课的时候,被那些命令整得不要不要的。...如果数据量较小的时候可用SharedPreferences或File来保存,当数据量较大且关系复杂的时候就要用到Android中的数据库SQLite——轻量级数据库系统。...工厂类 factory, 可以填写null默认值; version:数据库版本,需要升级数据库时将版本号加一,将升级的内容写在onUpgrade中即可。...这里用到的execSQL()有两个参数: 参数1:SQL指令,这里是一条插入命令,命令中的问号(?)为占位符 参数2:Object数组,数组中的内容对应参数1中的问号(?)

    1.2K70
    领券