android数据库
Luckie stone
Android应用开发。
展开
-
使用SQLiteDatabase管理SQLite
1.创建数据库链接创建一个SQLiteDatabase对象,第一个参数是数据库名称,第二个参数是打开方式(权限),第三个参数是工厂模式。SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase("数据库名.db",MODE_PRIVATE,null); 2.放入数据或查询1.直接执行SQL语句,适用于无返回值得SQL语句(增...原创 2018-04-28 17:57:42 · 3029 阅读 · 0 评论 -
一篇好文之Android数据库 SQLite全解析
项目效果地址:SQlite1. 创建数据库Android中使用SQlite,需要自己创建库,建表,添加数据!好在Android中提供了SQLiteOpenHelper类来帮助创建使用数据库,我们只需要继承这个类就可以实现数据库的创建和对数据的操作了!Android 中创建数据库需要通过如下几步:创建一个类继承SQLiteOpenHelper,需要实现其三个方法:构造方法:需要给SQL...转载 2019-04-24 06:25:12 · 212 阅读 · 0 评论 -
一篇好文之Android数据库 GreenDao的使用指南
1. 存储的数据库结构学习数据库之前,我们先得设计自己的数据库,不多废话,下面是我此次学习的数据库结构,后面所有的数据请参考这个图进行学习:2. GreenDao的介绍简单的GreenDao的介绍,闲麻烦的可以直接跳到GreenDao使用开始看。什么是GreenDao?GreenDAO是一个开源的Android ORM(“对象/关系映射”),通过ORM(称为“对象/关系映射”),在...转载 2019-04-24 06:25:22 · 812 阅读 · 0 评论 -
Realm数据库使用教程(一):Realm配置和Stetho配置
本人主要是开发android项目的,这里只对android端Realm使用进行总结。对于Realm的优缺点,既然你要使用了,就说明你有一定的了解,在这里就不介绍了!如果需要可自行googleRealm官方文档:https://realm.io/docs/java/latest/数据库效率对比分别采用greendao、ormlite、realm三种数据框架对同一数据结构Note进行10...转载 2019-06-22 06:47:44 · 1525 阅读 · 0 评论 -
Realm数据库使用教程(二):增加数据
Realm配置已经完成那么就应该增删改查等操作,如上图功能,在这里考虑循序渐进,就从“增加->查->改->删->数据迁移->问题”的功能进程介绍增加数据同步操作同步操作:使用executeTransaction方法插入数据mRealm.executeTransaction(new Realm.Transaction() { ...转载 2019-06-22 10:10:35 · 1607 阅读 · 1 评论 -
Realm数据库使用教程(三):查询数据
查询数据同步操作:findAll查询/** * 注意:RealmResults虽然实现了List接口,不过有很多方法是不能用的。 * 比如add、addAll、remove、clear等, * 调用后会直接抛异常。 * 因为它们都被标记为@Depreca...转载 2019-06-22 10:18:50 · 3617 阅读 · 0 评论 -
Realm数据库使用教程(四):更新数据
更新数据同步操作:executeTransaction修改mRealm.executeTransaction(new Realm.Transaction() { @Override public void execute(Realm realm) { Men m...转载 2019-06-22 10:23:35 · 1990 阅读 · 0 评论 -
Realm数据库使用教程(五):删除数据
删除数据同步删除(一):先查找到数据:deleteFromRealm(int index)删除指定数据final RealmResults<Student> students = mRealm.where(Student.class).findAll(); mRealm.executeTransaction(new Realm.Transact...转载 2019-06-22 10:33:54 · 2764 阅读 · 0 评论 -
Realm数据库使用教程(六):数据迁移
数据迁移数据迁移前的数据Modelpackage tsou.com.simple.realmtest.bean;import io.realm.RealmObject;import io.realm.annotations.PrimaryKey;import io.realm.annotations.Required;/*** Created by Administrato...转载 2019-06-22 10:53:10 · 1612 阅读 · 4 评论 -
Realm数据库使用教程(七):数据库加密和Realm使用注意事项
数据库加密Realm自带数据库加密,需要64位字节数据进行加密。官方原文Realm 文件可以通过传递一个512位(64字节)的密钥参数给 Realm.getInstance().encryptionKey() 来加密存储在磁盘上。byte[] key = new byte[64];new SecureRandom().nextBytes(key);RealmConfigurat...转载 2019-06-23 06:34:07 · 1223 阅读 · 0 评论 -
greendao3.0以上使用步骤(一):基础使用
本文介绍了greendao的基础入门使用:其中包括数据库的增删改查,基本使用功能,简单方便,易懂。优势:1:性能最大化2:内存开销最小3:API 简单好用4:对Android 高度优化5:2.2版本以上还支持加密数据库6:支持protobuf协议存储(protobuf 比json更快,google的优秀产品,因此greendao能很好地与retrofit 2.0结合pr...转载 2019-06-23 06:34:15 · 2803 阅读 · 3 评论 -
greendao3.0以上使用步骤(二):数据库到底该怎么升级
这一篇看看数据库到底该怎么升级呢?看我升级后的效果没有升级前的页面显示没有升级前的数据库升级后的页面显示升级后的数据库看增加了一个NUM字段 。数据库的升级大家都知道,创建临时表,进行过渡储存而已,网上有人提供了一个MigrationHelper类,真好正好可以使用!but 蹦出了这样一个大bug,请看:什么新增字段不能为空? 我没有设置呀,到底为什...转载 2019-06-23 06:34:22 · 615 阅读 · 0 评论 -
greendao3.0以上使用步骤(三):数据库加密
引入数据库1、在项目的build.gradle中加入这些配置// Top-level build file where you can add configuration options common to all sub-projects/modules.buildscript { repositories { mavenCentral() j...转载 2019-06-23 06:34:30 · 1073 阅读 · 0 评论 -
Android 通过反射让SQlite建表如此简单
我们通常使用SQlite的时候,如果我们有10张表,我们要写10个建表语句,而建表语句中只有一些字段的名字需要改而已,这样既费时又费力,还容易出错,我们知道写sql语句的时候经常会写错,如果写错程序就会崩掉,而且检查10个建表语句还可以,如果有100条我么就要疯了。这篇文章告诉大家如何通过反射来快速建表。1.我们写一个DBHelper继承自SQLiteOpenHelperpublic c...转载 2019-06-24 06:48:10 · 260 阅读 · 0 评论 -
Android 之采用execSQL和rawQuery方法完成数据的添删改查操作
使用SQLiteDatabase操作SQLite数据库Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。对SQLiteDatabase的学习,我们应该重点掌握execSQL()和rawQue...原创 2019-06-24 06:46:44 · 4432 阅读 · 0 评论 -
Android批量插入数据到SQLite数据库
Android中在sqlite插入数据的时候默认一条语句就是一个事务,因此如果存在上万条数据插入的话,那就需要执行上万次插入操作,操作速度可想而知。因此在Android中插入数据时,使用批量插入的方式可以大大提高插入速度。 有时需要把一些数据内置到应用中,常用的有以下2种方式:其一直接拷贝制作好的SQLite数据库文件,其二是使用系统提供的数据库,然后把数据批量插入。我更倾向于使用...转载 2019-03-23 08:22:12 · 3172 阅读 · 1 评论 -
未root的安卓真机使用sqlite3查看data目录下的数据库
没有root的安卓手机连接电脑直接使用ADB进行查看data目录下的数据库,会显示Permission denied ,即没有权限。通用的查看方式如下:shell@android:/data $ run-as com.your.packagerun-as com.your.packageshell@android:/data/data/com.your.package $ cd /dat...转载 2018-08-21 06:28:09 · 604 阅读 · 0 评论 -
SQLiteOpenHelper版本升级
/** * 定义升级函数 */ private void upgradeDatabaseToVersion2(SQLiteDatabase db) { // Add 'new' column to mytable table. db.execSQL("ALTER TABLE mytable ADD COLUMN new TEXT...原创 2018-04-28 17:42:40 · 509 阅读 · 0 评论 -
使用 SQLiteOpenHelper 操作 SQLite 数据库
1、创建继承于SQLiteOpenHelper的类DBHelper,并重写onCreate()和onUpgrade()。public class DBHelper extends SQLiteOpenHelper { private static final String TAG = "DBHelper"; public final String CAREA_TABLE ...原创 2018-04-28 17:12:54 · 1591 阅读 · 0 评论 -
GreenDao 报 java.lang.IllegalArgumentException: the bind value at index 6 is null 怎么办?
GreenDao 报 java.lang.IllegalArgumentException: the bind value at index 6 is null 错误往往是因为修改了@Entity文件却没有重新生成对应的Dao文件导致的。这是我们应该删除@Entity文件中的自动生成的 @Generated 标注的函数,重新编译工程。 ...原创 2018-04-16 10:48:33 · 1738 阅读 · 1 评论 -
Android Room的使用
Room其实就是一个orm,抽象了SQLite的使用,原生支持LiveData和Rxjava嵌套使用。Room有3个主要组件Database :数据库 Entity : 代表数据库一个表结构 Dao : 包含访问数据库的方法简单使用添加依赖dependencies { // Room implementation "android.arch.persis...原创 2019-06-24 06:46:20 · 7503 阅读 · 0 评论 -
Plugin with id 'org.greenrobot.greendao' not found.怎么办?
Plugin with id 'org.greenrobot.greendao' not found.是因为没有在Project的build.gradle中配置classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'引起的。 当配置了classpath 'org.greenrobot:greendao-gradle-...原创 2018-03-23 08:35:35 · 13923 阅读 · 1 评论 -
谷歌官方Android应用架构库——Room 持久化库
翻译自:https://developer.android.google.cn/training/data-storage/room/index.htmlRoom提供了一个SQLite之上的抽象层,使得在充分利用SQLite功能的前提下顺畅的访问数据库。对于需要处理大量结构化数据的App来说,把这些数据做本地持久化会带来很大的好处。常见的用例是缓存重要数据块。这样当设备无法连网的时候,用户...转载 2018-03-15 08:22:00 · 870 阅读 · 0 评论 -
Android Room Library 简单使用
Room 的一些特点编译时 sql 语句检查。相信大家都有过 app 跑起来,执行到 db 语句的时候 crash,检查之后发现原来是 sql 语句少了一个 ) 或者其它符号之类的经历。Room 会在编译阶段检查你的 DAO 中的 sql 语句,如果写错了(包括 sql 语法错误跟表名、字段名等等错误),会直接编译失败并提醒你哪里不对。 sql 查询直接关联到 Java 对象。这个应该不用详...转载 2018-03-14 16:52:07 · 657 阅读 · 0 评论 -
GreenDao3.2.2建立多表之间的关联
在上一篇文章GreenDao保存List<String>类型数据中,介绍了如何使用GreenDao保存List<String>类型的数据, 但是在实际开发中经常会遇到List的泛型并不是String类型的,而是另外一种自定义的Bean类类型。 比如,在上一篇文章中的User代表一个用户,但是在每一个用户中可能会保存一个订单的集合–List. 那么这种情况就需要创建多个...原创 2018-03-13 15:28:00 · 4200 阅读 · 2 评论 -
GreenDao3.2.2保存List<String>类型数据
在Android框架之GreenDao3.2.2的使用中,介绍了如何简单使用GreenDao,并创建了User类来保存一些简单的数据。 但是假如在User中有一种List类型的数据也需要保存到数据库中,该如何处理呢? 答案很简单,可以转换一下思路,遍历List数据,然后将所有的String对象都append到一个StringBuilder中,然后保存在数据库中即可。 事实上,Gree...原创 2018-03-13 15:19:41 · 2732 阅读 · 0 评论 -
Android中数据存储--采用SQLite存储数据及在SDCard中创建数据库
布局文件main.xml的代码:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_...转载 2018-03-06 08:10:12 · 530 阅读 · 0 评论 -
Android框架之GreenDao3.2.2的使用
GreenDao和ORMLite一样,都是基于ORM(Object Relation Mapping,对象关系映射)的用于操作Sqlite数据库的第三方框架。ORM简单来说就是把数据库中的数据映射成Java中的一个Bean类,便于操作。GreenDao是greenrobot公司的产品。这个公司的另一个非常成功的框架是EventBus,是一个很好的“订阅/发布”的事件处理框架。 好了,闲话不说...原创 2018-02-28 10:07:26 · 1325 阅读 · 0 评论 -
Android框架之ORMLite的使用
Android中有很多操作SQLite数据库的框架,现在最常见、最常用的是ORMLite和GreenDAO。ORMLite相比与GreenDAO来说是一个轻量级的框架,而且学习成本相对较低。所以这个帖子中先介绍ORMLite。要使用ORMLite,首先需要导入ORMLite的依赖:在build.gradle中加入以下代码:compile 'com.j256.ormlite:ormlite...原创 2018-02-28 09:36:25 · 910 阅读 · 0 评论 -
LitePal用法详解
一.首先我对数据库的操作基于LitePal的,是基于面向对象思想的,所以首先我先讲怎么使用LitePal1.在build.garde(Module:app)里面的dependencies{//添加的依赖compile 'org.litepal.android:core:1.3.2'}导入以上的依赖,其中1.3.2是我当前使用的版本,你们可以自己去找最新的2.配置litepa...转载 2018-02-28 08:24:58 · 892 阅读 · 0 评论 -
Android CursorAdapter的使用详解
CursorAdapter这个类是继承于BaseAdapter的,它是一个虚类,它为Cursor和ListView连接提供了桥梁。CursorAdapter的用法我们首先看一下CursorAdapter的部分源码: /** * @see android.widget.ListAdapter#getCount() */ public int getCo...转载 2018-04-26 16:35:05 · 6296 阅读 · 1 评论 -
SQLDatabase类中的insert方法nullColumnHack字段的含义
table 要插入数据的表的名称values:一个ContentValues对象,类似一个map.通过键值对的形式存储值。conflictAlgon:冲突解决方案。例如当数据表主键的唯一性检测出错的时候,就会按照该值设定的值进行处理。nullColumnHack: 当values参数为空或者里面没有内容的时候,我们insert是会失败的(底层数据库不允许插入一个空行),为了防止这种情况...原创 2019-08-04 08:05:46 · 745 阅读 · 0 评论