当前位置: 首页 > news >正文

android studio sqliteopenhelper,android studio使用SQLiteOpenHelper()建立数据库的方法

在android studio中存储数据有三个方法,分别是:

(1)简单存储——SharedPreferences

(2)文件存储:内部存储——应用程序私有文件外部存储——SD卡资源文件——只读( RAW 、XML)

(3)数据库存储——SQLiteDataBase

今天我们讲讲在android studio中利用数据库存储中的SQLiteOpenHelper()方法建立数据库 SQLiteOpenH

elper中需要重载函数:

onCreate( ):利用SQL语句,在系统中创建数据库(表)功能

onUpgrade( ):利用SQL语句,在系统中升级数据库(表)功能

注:

onCreate()方法只有第一次数据库创建时会用到 onUpgrade( )方法在版本更新会用到

SQLiteOpenHelper中被调用的函数: getWritable

Database( ):获取一个可读写的SQLiteDatabase对象

getReadableDatabase( ):获取一个只读的SQLiteDatabase对象

创建数据库

1.新建一个类继承SQLiteOpenHelper

3a63135327e2570f7cd4b876bc0b63ad.png

这里按Alt+Enter俩次添加构造方法

e5180d55290e95b031c812f72174b167.png

public class MySQLOpenHelper extends SQLiteOpenHelper {

public MySQLOpenHelper(@Nullable Context context , @Nullable String name , @Nullable SQLiteDatabase.CursorFactory factory , int version) {

super( context , name , factory , version );

}

(1)这个方法里面是用来创建数据库的

context是一个访问application环境全局信息的接口,通过它可以访问application的资源和相关的类 context其主要功能如下:启动Activity 启动和停止Service 发送广播消息(Intent) 注册广播消息(Intent)接收者可以访问APK中各种资源(如Resources和AssetManager等) 可以访问Package的相关信息 APK的各种权限管理 Context就是一个对APK包无所不知的大管家,大家需要什么,直接问它就可以了(2)name是数据库的名字(3)CursorFactory factory游标工厂,用来指向数据库里面的某一行 CursorFactory 用来创建游标的,默认值为null,指向一开始的位置 (4)version数据库的版本号 版本号只能增加,不能递减,要不然程序会崩溃

其他俩个方法是用来创建表的,接下来会讲到我们继续构建数据库:在 MySQLOpenHelper类中重构代码:

public class MySQLOpenHelper extends SQLiteOpenHelper {

public MySQLOpenHelper(@Nullable Context context ) {//name是数据库名字,后缀加.db

super( context , "SQLite.db" , null , 1 );

}

在MainActivity类中调用这个方法

MySQLOpenHelper helper=new MySQLOpenHelper( this );

然后再在MainActivity类中实例化数据库添加代码如下

MySQLOpenHelper helper=new MySQLOpenHelper( this );

//创建一个可读可写的数据库

SQLiteDatabase writableDatabase=helper.getWritableDatabase();

//创建一个只可读的数据库

SQLiteDatabase readableDatabase=helper.getReadableDatabase();

这个读者看需要自行构建代码,(只能存在一个)

我们的数据库创建完成了,接下来看看我们的数据库是否创建成功了呢在看之前我们先运行我们的虚拟机,因为数据库是建立在虚拟机里面的,运行完之后我们去找创建的文件。

android3.0以前打开虚拟机中的文件是用导航栏中的Tools中Android,3.0以后为了提供的更新工具把它舍弃了但我们可以通过View导航栏中Tool Windows中的Device File Explorer打开,找到data目录下的data下的程序的包名,找到创建的数据库(.db文件//另一个是相对应的日记文件),右键重新建立目录,然后用SQLite Expert Professional打开 SQLite Expert Professional下载地址:http://www.sqliteexpert.com  找到的文件如图

ce32b767261ce7cc74d8634043721ee9.png

用SQLite Expert Professional 打开后如图

3289b67c846e0a4519f4d15e9a455bc9.png

说明我们数据库已经创建好了

总结

到此这篇关于android studio使用SQLiteOpenHelper()建立数据库的方法的文章就介绍到这了,更多相关android studio建立数据库内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

时间: 2020-03-07

相关文章:

  • 一加5android 系统耗电,一加5评测:可能是今年最好的Android旗舰
  • 在线html代码生成器,支持网页快速排版 CSS代码一键生成的在线设计工具
  • html文件如何放置web站点,如何使用Go Web服务器提供静态html文件?
  • asp.net mv4 controller 跳转 静态html,Asp.Net MVC系列--进阶篇之controller(1)
  • html星星连线特效代码,js实现飞入星星特效代码
  • html生成jsessionid,H5 APP 使用 JSESSIONID 保持会话登录
  • web项目html访问不了,JBoss7部署web工程,无法访问到html文件,但是jsp都可以正常访...
  • html中的div的,html – div中的div
  • html背景图去重,Python Django开发 经验技巧总结(二)
  • 把html代码渲染成pdf,将HTML渲染为PDF文件
  • 学计算机做近视眼手术,做完近视眼手术后多久可以看电脑
  • 运用计算机在课堂上的好处,CAI在计算机教育中的重要性
  • html session 表单,HTTP的几种认证方式之FormBase 认证(基于表单认证)
  • 建模学什么计算机语言实用,这么详细的数学建模编程语言教程,确定不收藏吗?(一)...
  • 计算机名人名言英语,智者之思(Words of Wisdom)
  • Android Studio:GIT提交项目到远程仓库
  • CAP理论的例子讲解
  • HTTP中的ETag在移动客户端的应用
  • JavaScript实现分页效果
  • Java精华积累:初学者都应该搞懂的问题
  • Netty源码解析1-Buffer
  • Solarized Scheme
  • Spring Cloud Feign的两种使用姿势
  • Storybook 5.0正式发布:有史以来变化最大的版本\n
  • webpack+react项目初体验——记录我的webpack环境配置
  • yii2中session跨域名的问题
  • 包装类对象
  • 程序员该如何有效的找工作?
  • 基于web的全景—— Pannellum小试
  • 来,膜拜下android roadmap,强大的执行力
  • 理解IaaS, PaaS, SaaS等云模型 (Cloud Models)
  • 码农张的Bug人生 - 见面之礼
  • 原生Ajax
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​低代码平台的核心价值与优势
  • ​一些不规范的GTID使用场景
  • # 日期待t_最值得等的SUV奥迪Q9:空间比MPV还大,或搭4.0T,香
  • #pragma 指令
  • (23)Linux的软硬连接
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (poj1.2.1)1970(筛选法模拟)
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (十)DDRC架构组成、效率Efficiency及功能实现
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • .Net 6.0 处理跨域的方式
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET/C# 使窗口永不激活(No Activate 永不获得焦点)
  • .net6 webapi log4net完整配置使用流程
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • .NET面试题(二)
  • /var/log/cvslog 太大
  • ?php echo ?,?php echo Hello world!;?