sqlite

正确使用sqlcipher for Android

空扰寡人 提交于 2020-05-07 20:17:57
android-database-sqlcipher 是基于SQLCipher的数据库加密框架,支持android4到android9,经常用来对android的SqlLite进行加密,现在支持Gradle集成,如果要支持androidx,可以使用Room框架,也可以配合原声的SQLiteOpenHelper使用。 首先在你的build.gradle中添加依赖: implementation 'net.zetetic:android-database-sqlcipher:4.2.0'   如果要兼容androidx请参考github页的配合Room框架使用的方案。 这里介绍怎么和原生API配合使用: 1、将所有android.database.sqlite.*的引入全部更改为net.sqlcipher.database.*,例如android.database.sqlite.SQLiteDatabase改为 net.sqlcipher.database.SQLiteDatabase; 2、在你的application的oncreate方法里面调用SQLiteDatabase.loadLibs();传入application的上下文作为参数; 3、在你获取数据库对象的时候,使用SQLiteDatabase.g() ,传入密码,支持String,byte[],char[] 作为密码;

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

社会主义新天地 提交于 2020-05-07 19:37:21
前言 SQLite数据库操作在Android开发中非常常用 今天我将带大家全面了解关于SQLite数据库的操作(增、删、查、改) 目录 1. SQLite数据库介绍 SQLite是Android内置的一个小型、关系型、属于文本型的数据库。 Android提供了对 SQLite数据库的完全支持,应用程序中的任何类都可以通过名称来访问任何的数据库,但是应用程序之外的就不能访问。 Android中,通过 SQLiteOpenHelper类 来实现对SQLite数据库的操作。 2. SQLiteOpenHelper类介绍 定义:SQLiteOpenHelper是一个辅助类 作用:管理数据库(创建、增、修、删) & 版本的控制。 使用过程:通过创建子类继承SQLiteOpenHelper类,实现它的一些方法来对数据库进行操作。 在实际开发中,为了能够更好的管理和维护数据库,我们会封装一个继承自SQLiteOpenHelper类的数据库操作类,然后以这个类为基础,再封装我们的业务逻辑方法。 SQLiteOpenHelper类的数据库操作方法介绍 方法名 作用 备注 onCreate() 创建数据库 创建数据库时自动调用 onUpgrade() 升级数据库 close() 关闭所有打开的数据库对象 execSQL() 可进行增删改操作, 不能进行查询操作 query()、rawQuery()

安卓基础干货(三):安卓数据库的学习

非 Y 不嫁゛ 提交于 2020-05-07 19:34:42
android下数据库的创建(重点) 在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL、INTEGER、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,也接受varchar(n)、char(n)、decimal(p,s) 等数据类型, SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。例如:可以在Integer类型的字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值。 但有一种情况例外:定义为INTEGER PRIMARY KEY的字段只能存储64位整数, 当向这种字段保存除整数以外的数据时,将会产生错误。 另外,在编写CREATE TABLE 语句时,你可以省略跟在字段名称后面的数据类型信息,如下面语句你可以省略 name字段的类型信息: CREATE TABLE person (personid integer primary key autoincrement, name varchar(20)) SQLite可以解析大部分标准SQL语句,如: 查询语句:select * from 表名 where 条件子句 group by 分组字句 having ... order by 排序子句 如:select * from

Navicat Premium 15 for Mac(数据库开发工具) v15.0.15

限于喜欢 提交于 2020-05-07 18:18:02
Navicat Premium Mac破解版 是一个可多重连接的数据库开发工具,Navicat 的功能足以符合专业开发人员的所有需求,但是对数据库服务器的新手来说又相当容易学习。它可让你以单一程序同時连接到目前世面上所有版本的主流数据库并进行管理和操作,支持的数据库有: MySQL、SQL Server、SQLite、Oracle 及 PostgreSQL。让管理不同类型的数据库更加方便。 地址:https://www.macw.com/mac/49.html 来源: oschina 链接: https://my.oschina.net/u/4471886/blog/4269483

【实战案例】利用Python输出精美表格的5个案例,过程详细

白昼怎懂夜的黑 提交于 2020-05-07 17:33:07
1. 前言 最近在用python写一个小工具,这个工具主要就是用来管理各种资源的信息,比如阿里云的ECS等信息,因为我工作的电脑使用的是LINUX,所以就想着用 Python写一个命令行的管理工具,基本的功能就是同步阿里云的资源的信息到数据库,然后可以使用命令行查询。 因为信息是展现在命令行中的,众所周知,命令行展现复杂的文本看起来着实累人,于是就想着能像表格那样展示,那看起来就舒服多了。 prettytable库就是这么一个工具,prettytable可以打印出美观的表格,并且对中文支持相当好(如果有试图自己实现打印表格,你就应该知道处理中文是多么的麻烦) 说明:本文使用Markdown语法编写,为了展示方便,以及复制方便,所以本文中没有使用截图,因为格式控制的问题,文章中的运行结果会出现一些分割线的偏移,在终端中呈现并此问题,请各位手动去操作验证。 2. 安装 prettytable并非python的内置库,通过 pip install prettytable即可安装。 3. 一个小示例 我们先来看一个示例: 以上示例运行结果如下: 在以上的示例中,我们通过form导入了表格库。table实例化了一个表格库,并且添加了['编号','云编号','名称','IP地址']为表头,如果没有添加表头,那么会以默认的Field+编号显示,例如: 所以为更直观看出每一列的意义

Android SQLite数据库查看及增删改查&xutil框架实现增删改查

浪尽此生 提交于 2020-05-07 11:44:06
文章目录 SQL语句实现 一:创建数据库 二:查看数据库 三:增加数据 四:更新数据 五:查询数据 六:删除数据 xutil框架实现增删改查 一:增加数据 二:删除数据 三:更新数据 四:查询数据 SQL语句实现 一:创建数据库 首先我们得创建一个java类继承SQLiteOpenHelper,用来创建数据库的具体实现 import android . content . Context ; import android . database . sqlite . SQLiteDatabase ; import android . database . sqlite . SQLiteOpenHelper ; import androidx . annotation . Nullable ; public class MySQLiteOpenHelper extends SQLiteOpenHelper { public MySQLiteOpenHelper ( @Nullable Context context , @Nullable String name , @Nullable SQLiteDatabase . CursorFactory factory , int version ) { super ( context , name , factory , version )

ChromeFK插件推荐系列三十:SQL相关插件推荐

白昼怎懂夜的黑 提交于 2020-05-06 20:39:51
本次分享几个开发者SQL相关插件,内容来自: chromefk 。希望对你有所帮助。 1、【CHROMEFK】SQLite经理 SQLite Manager for Google Chrome™”使您可以直接在Google Chrome上編輯/查看SQLite數據庫。您可以在瀏覽器中讀取一個或多個SQLite數據庫並運行SQLite命令。 https://www.chromefk.com/ext-sqlite-manager__aejlocbcokogiclkcfddhfnpajhejmeb.html 2、【CHROMEFK】SQLite阅读器 SQLite Reader是一個擴展,可以幫助您輕鬆瀏覽,編輯和呈現SQLite數據庫。 https://www.chromefk.com/ext-sqlite-reader__clpnhenadbibdbfendahnlakkcpocmej.html 3、【CHROMEFK】SQLite Manager You can read, edit, manipulate tables and plot SQLite databases with this extension. The extension is powered with the math.js library so you can export a table from

Qt 只运行一个程序实例 -QLockFile -QSystemSemaphore 和 QSharedMemory

北战南征 提交于 2020-05-05 15:40:45
Qt 只运行一个程序实例 -QLockFile -QSystemSemaphore 和 QSharedMemory 来源 https://blog.csdn.net/y396397735/article/details/80814497 前言 每次只运行应用程序的一个实例可能是必要的,以限制内存泄漏的问题,或者消除某些资源,文件,SQLite数据库等应用程序的两个实例之间的竞争问题。或者,原则上,应用程序只需要用户使用一个副本就行了。 有两种方法可以用来解决这个问题: 1、使用QLockFile 当一个临时文件被创建时,当应用程序关闭时清除这个临时文件。因此,在应用程序的第二个实例启动时检查该文件是否已经创建了一个打开的应用程序实例,如果这个文件存在那么第二个就可以不启动了。 2、使用QSystemSemaphore和QSharedMemory 这种通过创建一个共享内存段,并尝试将其连接到具有唯一标识符的现有段。如果连接尝试成功,则表明应用程序的一个实例已经创建。因此,我们通知用户并关闭应用程序。如果连接尝试不成功,那么我们为应用程序选择创建这个内存段并运行第一个实例。 QLockFile 在应用程序启动期间,创建一个临时“锁定文件”,如果尝试创建锁定文件不成功,则程序表明已经打开应用程序的一个实例,通知用户并关闭当前未启动的实例。 测试程序: int main( int argc

python学习之自动化运维项目

血红的双手。 提交于 2020-05-05 10:21:30
项目实战: CMDB自动化资产扫描 1. 项目介绍 本项目通过KVM虚拟化搭建Linux系统集群,使用 Ansible实现Linux集群下的批量部署与自动化管理, 实现Web形式的自动化运维系统,集中批量控制服务器, 最终实现能支撑1000台实例的环境提供管理和自 动化任务, 提高运维工程师的工作质量和效率。 项目基于HTTP实现自动化任务接受和响应接口设计, 基于MySQL用作的关系型数据存取, 基于Redis的任务锁机制和消息队列, 基于MongoDB的事件日志 记录, 最终实现邮件通知功能、敏感数据加密功能、日志事件记录功能。 这个文档主要目标是实现自动化资产扫描, 扫描指定网段的服务器资产信息。 互联网快速发展 网站用户规模、使用快速上升 要求庞大系统支撑能力 更加快速的运维效率应对突发流量 更加自动化的方式减少人工投入成本 更加可靠的技术手段,保障系统的稳定 云时代 腾讯云、阿里云、亚马逊云、青云等云厂商的市场份额不断增加 大部分技术架构设计不再以网络设计、IDC和系统硬件等方面作为重点 运维基础的、繁琐的工作逐步减少 小公司也不再需要一个运维工程师或者系统工程师 结论: 在这样的时代背景下, 大型互联网公司为了应对市场的快速变化,就需要运维自动化。 2. 项目技术分析 运维自动化难点和痛点 开发人员: 没有系统管理、网络管理等相关运维工作经验,项目设计往往是大打折扣的。

小记----Mybatis

北战南征 提交于 2020-05-05 02:33:24
使用mybatis操作数据库有两种方式xml注入和@注解方式,两种方式在项目中是可以共存的。 注解方式:使用注解方式 默认 需要实体类的属性值和表的列名保持一致,否则无法映射到对应的值;或者使用@Results来手动设置映射关系,优点:看着优雅一点,方便修改,缺点:动态sql语句不好写,比较麻烦 xml形式:很常用的方式,有各种逆向工程可以生成mapper.xml文件,看着比较乱,各种标签满天飞,修改的时候很痛苦 我们会发现无论是hibernate还是mybatis,为了方便我们的写sql都煞费苦心。但最后他们都殊途同归指向了“约定大于配置”。hibernate搞了个jpa,而mybatis也相应推出了mp。而mp 是一个 MyBatis 的增强工具 。 看看官网对他的介绍: 无侵入 :只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小 :启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作 强大的 CRUD 操作 :内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求 支持 Lambda 形式调用 :通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错 支持主键自动生成 :支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence)