这两个方法都可以创建或打开一个现有的数据库,并返回一个可对数据库进行读写操作的对象。...参数: Context; 数据库名; Cursor:允许我们在查询数据的时候返回一个自定义的Cursor,一般传null; 当前数据库的版本号:可用于对数据库进行升级操作。...android:layout_height="wrap_content" android:text="Create Database" /> 添加一个按钮用于创建数据库...升级数据库的最佳写法 之前升级数据库是简单的在onUpgrade()方法中删除当前所有表然后重新执行一遍onCreate()。 这样做的弊端为如果你的应用升级一次数据库用户之前的数据就会被清空。...当指定的数据库版本号大于当前数据库版本号的时候,就会进入onUpgrade()方法中执行更新操作,这里需要为每一个版本号赋予其所对应的数据库变动,然后再onUpgrade()方法中对当前数据库的版本号就行判断
Android数据库加密 一、简介 SQLite是一个轻量的、跨平台的、开源的数据库引擎,它的读写效率、资源消耗总量、延迟时间和整体简单性上具有的优越性,使其成为移动平台数据库的最佳解决方案(如Android...Android系统内置了SQLite数据库,并且提供了一整套的API用于对数据库进行增删改查操作,具体就不详细说明了。 然而,Android平台自带的SQLite有一个致命的缺陷:不支持加密。...三、解决方案* 1.将数据加密后再写入数据库: 我们可以对数据的数据库名,表名,列名就行md5,对存储的数据进行加密,例如进行aes加密(Android数据加密之Aes加密),查询的时候再对数据进行解密...github地址 导入SQLCipher加密库 implementation 'net.zetetic:android-database-sqlcipher:4.2.0' 替换原生的包 android.database.Cursor...为 net.sqlcipher.Cursor android.database.sqlite.SQLiteDatabase 为 net.sqlcipher.database.SQLiteDatabase
目前,Android系统中提供了3种方式的数据持久化技术,即文件存储、SharedPreferences存储以及数据库存储。...Shared Preferences通常用在轻量级的数据存储场景中,比如账号/密码的存储,而数据库则用在数据量比较大的场景中,比如聊天数据的存储。...现在,使用数据库存储时候,一般都会使用一些第三方ORM框架,比如GreenDao。...在Android开发中,集成Greendao通常需要如下几步: 首先,在项目的build.gradle文件中添加依赖: classpath 'org.greenrobot:greendao-gradle-plugin...mImgTT) { this.mImgTT = mImgTT; } } 然后再封装一个统一的管理类: package com.yufulife.xj.model; import android.util.Log
打开数据库 File file=new File(getContext().getExternalFilesDir(null),"learn.db"); SQLiteDatabase database...=SQLiteDatabase.openOrCreateDatabase(file,null); 遍历数据库中的所有表名 Cursor tables=database.rawQuery("select
SQLite 数据库简介 SQLite 是一个轻量级数据库,它是D. Richard Hipp建立的公有领域项目,在2000年发布了第一个版本。...它的设计目标是嵌入式的,而且占用资源非常低,在内存中只需要占用几百kB的存储空间,这也是Android移动设备采用SQLite数据库的重要原因之一。 ...SQLite 数据库创建 在Android系统中,创建SQLite数据库是非常简单的。...Android系统推荐使用 SQLiteOpenHelper 的子类创建数据库,因此需要创建一个继承自SQLiteOpenHelper,并重写该类中的onCreate()方法和onUpgrade()方法即可... 前面介绍了SQLite 数据库及如何创建数据库,接下来将针对SQLite数据库的增、删、改、查操作进行详细讲解。
之前一直都是在SQLite、XUtils、greenDao、Realm这些数据库之间来回折腾。现在终于有一个更“正统”数据库了。 Room是什么? Room是一个持久性数据库。...1、在app/build.gradle中添加以下依赖 implementation 'android.arch.persistence.room:runtime:1.0.0' annotationProcessor...'android.arch.persistence.room:compiler:1.0.0' 你可以点击这里查看最新依赖版本号 2、创建JavaBean @Entity public class User...(每当我们改变数据库中的内容时它都会增加),所以这里使用exportSchema = false 注意:除了添加表映射的类以及和数据库版本外,还要添加exportSchema = false否则会报警告...5、使用数据库 我们终于能够操作我们的数据库了。但是所有的操作必须在后台线程中完成。你可以通过使用AsyncTask,Thread,Handler,RxJava或其它方式来完成。
)数据库。...version = 1表示数据库的版本,可以做数据库的升级操作。 注意这是一个抽象类,在编译时Room会帮助构建实现类。 现在运行一下,手机或者模拟器都可以。然后什么都不用去做。...等会的数据库表操作就是通过这里的点击事件进行触发。...initDB方法: /** * 初始化数据库 */ private void initDB() { //本地持久化数据库 db = Room.databaseBuilder....allowMainThreadQueries() //数据库创建和打开的事件会回调到这里,可以再次操作数据库 .addCallback(
Android 数据库框架ormlite 使用精要 前言 本篇博客记录一下笔者在实际开发中使用到的一个数据库框架,这个可以让我们快速实现数据库操作,避免频繁手写sql,提高我们的开发效率,减少出错的机率...简单来说,就是我们定义一个实体类,利用这个框架,它可以帮我们吧这个实体映射到我们的数据库中,在Android中是SQLite,数据中的字段就是我们定义实体的成员变量。 为什么要用ormlite?...java.util.Map; import android.content.Context...; import android.database.sqlite.SQLiteDatabase...hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">import com.j256.ormlite.android.apptools.OrmLiteSqliteOpenHelper
Android开发中常用的数据库有5个: 1. OrmLite OrmLite 不是 Android 平台专用的ORM框架,它是Java ORM。支持JDBC连接,Spring以及Android平台。...相比SQLite,Realm更快并且具有很多现代数据库的特性,比如支持JSON,流式api,数据变更通知,以及加密支持,这些都为安卓开发者带来了方便。 Ream提供了五种编程方式的实现。...快速入门: 运行环境 目前我们还不支持 Android 以外的 Java 环境; Android Studio >= 1.5.1 ; 较新的 Android SDK 版本; JDK 版本 >=7; 我们支持...Android API 9 以上的所有版本(Android 2.3 Gingerbread 及以上)。...Exception e) { e.printStackTrace(); } } } 其实这和以前的用法差不多的,有点在于,realm去帮我们管理这个数据库
:对象关系映射)数据库。...version = 1表示数据库的版本,可以做数据库的升级操作。 注意这是一个抽象类,在编译时Room会帮助构建实现类。 现在运行一下,手机或者模拟器都可以。然后什么都不用去做。...等会的数据库表操作就是通过这里的点击事件进行触发。...initDB方法: /** * 初始化数据库 */ private void initDB() { //本地持久化数据库 db = Room.databaseBuilder....allowMainThreadQueries() //数据库创建和打开的事件会回调到这里,可以再次操作数据库 .addCallback(
中添加 maven { url "https://www.jitpack.io" } 如下: classpath 'com.neenbedankt.gradle.plugins:android-apt...:1.8' 如下: 2、app目录下的build.gradle 中添加 apply plugin: 'com.neenbedankt.android-apt' 依赖: apt "com.github.Raizlabs.DBFlow...onCreate() { super.onCreate(); FlowManager.init(this); } } 清单文件配置: 二、使用 1、创建一个数据库类...* @email djlxqx@163.com * blog:http://www.cnblogs.com/xqxacm/ * createAt 2017/11/22 * description: 数据库类...static final int VERSION = 1; //数据库版本号 } 2、创建一个表类 /** * @author xqx * @email djlxqx@163
我们知道Android中有四种数据存储方式: SharedPreference存储 content provider SQLite数据库存储 文件存储 今天我们主要说 本地数据库sqlite这种方式,实现读取一个本地数据库...1.将本地数据库db文件拷贝到项目中 2.将项目中db文件写入到本地文件夹中 3.增加打开数据库以及数据读取逻辑 4.增加删除逻辑 ,增加修改逻辑。...Android拷贝逻辑代码 package com.example.testdemo.util; import android.content.Context; import android.os.Environment...本地 操作数据库逻辑(查,删,改) package com.example.testdemo.util; import android.content.Context; import android.database.Cursor...; import android.database.sqlite.SQLiteDatabase; import android.os.Environment; import com.example.testdemo.bean.User
false /frameworks/base/core/java/android/provider/Settings.java Settings
这两个方法都可以创建或者打开一个现有的数据库(如果数据库已存在则直接打开,否则创建一个新的数据库),并返回一个可对数据库进行读写的对象。...// 第三个参数null表示使用默认的游标工厂 // 第四个参数是数据库的版本号,数据库只能升级,不能降级,版本号只能变大不能变小 public MyDBOpenHelper(...> 当输入数据然后点击添加的时候数据库会被创建(如果数据库还没被创建),数据会添加成功 我们可以把数据库导出到SQLite Expert去查看表内容,也可以直接在控制台查看一个大概,查看数据库和表有没有被创建...打开mydb.db数据库 输入.table命令查看数据库中有哪些表,这个android_metadata是每个数据库中都会自动生成的,不用管。...SQLite数据库的事务介绍: MainActivity.java import android.content.ContentValues; import android.database.Cursor
我们都知道 Android的 数据库默认是放在data\data\packageName\datbases\下的; 要导入现有的数据库将我们的数据库在 程序第一次启动的时候将数据库放在这个目录下,然后我们配置好.../** * 将 数据库从 assets 复制到 databases下 */ private void copyDB() { //data/data/packageName/databases/...mkdir.exists()) mkdir.mkdirs(); Log.e(TAG, "copyDb: mkdir="+mkdir.getPath()); //数据库文件 File
概述 我这里说的数据库版本指的是: 我们的应用的程序的数据库的用户版本(user_version).比如说下面的情形: 2013年4月,我们第一次 发布了 我们的应用,数据库版本是1。...2013年5月,我们第二次 发布了 我们的应用,数据库版本是2。由于业务需要,我们更改了数据库里的某个表的表结构。...也就是说,当检测到数据库需要升级时,执行这些 用于升级数据库的sql。 通过上面的方式,我们就完成了一次的数据库升级的操作。...android会判断 数据库的版本号,并自动的调用onUpgrade方法。 扩展内容:如何数据库文件的版本 我们通过 SQLite Expert 软件(运行在windows下)。...可以看到的这个数据库文件有个属性 user_version。 它是sqlite数据库的 "PRAGMA " 参数。执行 PRAGMA + sql有可以获得一些数据库文件的元数据信息。
2016-03-16 Android数据库支持 本文节选并翻译《Enterprise Android - Programing Android Database Applications for the...学习目标: 学习Android对SQL的支持。 理解在Java中使用SQL——通过SQLiteDatabase类。 创建数据库——SQLiteOpenHelper类。...Java中执行SQL:SQLiteDatabase类 为了在java代码中针对SQLite数据库执行一些SQL查询等操作,Android 框架提供了SQLiteDatabase类。...Android SQLite API还提供了一系列的API来对应不同的SQL语法。包括insert、update、delete和query等,相应地,还有一些等价的简化方法和数据库管理方法。...Android应用则是外全不同的情况,用户下载并运行apk来安装一个程序,其apk中包含所有相关的数据,安装过程程序自身完成各种引导和设置。如果需要数据库,程序自身负责创建它。
而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数据库来实现一些需求的吧。...: 在创建Android项目之前,我们应该想一下我们要定义的数据库的相关信息和里面的表格的相关信息,为了日后数据库的更新更加方便 ,我们可以用一个专门的类保存数据库的相关信息,以后如果要更新数据库的话只需要该动这个类就行了...; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; import android.widget.Toast..." android:text="创建数据库" /> <Button android:id="@+id/buttonInsertDatabase"...而我们注意到这里面还有另外一个android_metadata表,这个表是每个数据库文件都会自动生成的,不需要管。
前言 如果大家看到了这里,那大家就可以正常使用Room数据库了。因为业务的变更,我们时常会添加数据库字段。这时候咱们就需要去升级数据库了。...大致的意思是:你修改了数据库,但是没有升级数据库的版本 这时候咱们根据错误提示增加版本号,但没有提供migration,APP一样会crash。...fallbackToDestructiveMigration完成迁移 接下来,咱们增加版本号并使用fallbackToDestructiveMigration(),虽然可以使用了,但是我们会发现,数据库的内容都被我们清空了...DepartmentDatabase.class, DB_NAME).allowMainThreadQueries() .fallbackToDestructiveMigration() .build(); 如果咱们不想清空数据库...DepartmentDatabase.class, DB_NAME).allowMainThreadQueries() .addMigrations(MIGRATION_1_2) .build(); 再次运行APP就会发现,数据库表更新了
很好的链接 http://www.cnblogs.com/best/p/6517755.html 一个小时学会MySQL数据库 http://www.cnblogs.com/klguang/p/4746059....html JDBC基本知识 http://blog.csdn.net/itluochen/article/details/52181560 Android开发之连接MySQL数据库(一) https...(Android) 现在只是学习阶段.把自己学到的先记录下来,学的差不多了再把这篇文章整理成一篇文章,因为如果哪天学好了再去写的话担心会遗漏什么 不是给大家看的哈,别让没接触到数据库的童鞋吓到....以前没接触过数据库...其实最后会写一个esp8266连接MQTT,然后电脑也连接MQTT然后把8266的数据存到自己的电脑的MySQL数据库里面,然后呢手机访问电脑的MySQL数据库,然后把数据显示出来....一般现在的云端都是...这是一个名字为test的数据库 result = statement.executeQuery("select name from test"); 获取test数据库 name 标签下的数据 但是如果直接
领取专属 10元无门槛券
手把手带您无忧上云