Android编程之数据库的创建方法详解
发布时间 - 2026-01-11 02:57:57 点击率:次本文实例讲述了Android编程之数据库的创建方法。分享给大家供大家参考,具体如下:

主java
package com.itheima.createdatabase;
import android.app.Activity;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
public class MainActivity extends Activity {
private Context mContext;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mContext = this;
//创建一个帮助类对象
MySqliteOpenHelper mySqliteOpenHelper = new MySqliteOpenHelper(mContext);
//调用getReadableDatabase方法,来初始化数据库的创建
SQLiteDatabase db = mySqliteOpenHelper.getReadableDatabase();
}
}
同一目录下创建一个类继承于数据库
package com.itheima.createdatabase;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class MySqliteOpenHelper extends SQLiteOpenHelper {
public MySqliteOpenHelper(Context context) {
//context :上下文 , name:数据库文件的名称 factory:用来创建cursor对象,默认为null
//version:数据库的版本号,从1开始,如果发生改变,onUpgrade方法将会调用,4.0之后只能升不能将
super(context, "info.db", null,1);
}
//oncreate方法是数据库第一次创建的时候会被调用; 特别适合做表结构的初始化,需要执行sql语句;SQLiteDatabase db可以用来执行sql语句
@Override
public void onCreate(SQLiteDatabase db) {
//通过SQLiteDatabase执行一个创建表的sql语句
db.execSQL("create table info (_id integer primary key autoincrement,name varchar(20))");
}
//onUpgrade数据库版本号发生改变时才会执行; 特别适合做表结构的修改
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//添加一个phone字段
db.execSQL("alter table info add phone varchar(11)");
}
}
笔记:
什么情况下我们才用数据库做数据存储? 大量数据结构相同的数据需要存储时。
mysql sqlserver2000 sqlite 嵌入式 轻量级
SqliteOpenHelper
创建数据库步骤:
1.创建一个类继承SqliteOpenHelper,需要添加一个构造方法,实现两个方法oncreate ,onupgrade
构造方法中的参数介绍:
context :上下文 , name:数据库文件的名称 factory:用来创建cursor对象,默认为null
version:数据库的版本号,从1开始,如果发生改变,onUpgrade方法将会调用,4.0之后只能升不能降
super(context, "info.db", null,1);
2.创建这个帮助类的一个对象,调用getReadableDatabase()方法,会帮助我们创建打开一个数据库
3.复写oncreate和onupgrdate方法:
oncreate方法是数据库第一次创建的时候会被调用; 特别适合做表结构的初始化,需要执行sql语句;SQLiteDatabase db可以用来执行sql语句
onUpgrade数据库版本号发生改变时才会执行; 特别适合做表结构的修改
帮助类对象中的getWritableDatabase 和 getReadableDatabase都可以帮助我们获取一个数据库操作对象SqliteDatabase.
区别:
getReadableDatabase:
先尝试以读写方式打开数据库,如果磁盘空间满了,他会重新尝试以只读方式打开数据库。
getWritableDatabase:
直接以读写方式打开数据库,如果磁盘空间满了,就直接报错。
更多关于Android相关内容感兴趣的读者可查看本站专题:《Android操作SQLite数据库技巧总结》、《Android数据库操作技巧总结》、《Android编程之activity操作技巧总结》、《Android文件操作技巧汇总》、《Android开发入门与进阶教程》、《Android资源操作技巧汇总》、《Android视图View技巧总结》及《Android控件用法总结》
希望本文所述对大家Android程序设计有所帮助。
# Android
# 数据库
# 创建方法
# Android数据库SD卡创建和图片存取操作
# Android创建和使用数据库SQLIte
# Android实现创建或升级数据库时执行语句
# android创建数据库(SQLite)保存图片示例
# Android SQLite数据库增删改查操作的使用详解
# Android使用SQLite数据库的简单实例
# Android中操作SQLite数据库快速入门教程
# Android实现将已发送的短信写入短信数据库的方法
# Android SQLite数据库增删改查操作的案例分析
# 实例讲解Android App使用自带的SQLite数据库的基本方法
# Android操作SQLite数据库(增、删、改、查、分页等)及ListView显示数据的方法详解
# 适合做
# 操作技巧
# 创建一个
# 将会
# 满了
# 时才
# 可以用来
# 默认为
# 磁盘空间
# 进阶
# 数据库文件
# 相关内容
# 感兴趣
# 数据结构
# 他会
# 给大家
# 能将
# 报错
# 更多关于
# 可以帮助
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
javascript基本数据类型及类型检测常用方法小结
Laravel如何清理系统缓存命令_Laravel清除路由配置及视图缓存的方法【总结】
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
什么是javascript作用域_全局和局部作用域有什么区别?
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
Laravel如何实现多语言支持_Laravel本地化与国际化(i18n)配置教程
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
Laravel怎么实现验证码(Captcha)功能
EditPlus中的正则表达式实战(5)
ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法
如何在 React 中条件性地遍历数组并渲染元素
Laravel怎么为数据库表字段添加索引以优化查询
教你用AI润色文章,让你的文字表达更专业
如何用VPS主机快速搭建个人网站?
如何基于云服务器快速搭建个人网站?
如何快速辨别茅台真假?关键步骤解析
Laravel定时任务怎么设置_Laravel Crontab调度器配置
如何在香港服务器上快速搭建免备案网站?
java ZXing生成二维码及条码实例分享
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制
使用豆包 AI 辅助进行简单网页 HTML 结构设计
高端建站如何打造兼具美学与转化的品牌官网?
phpredis提高消息队列的实时性方法(推荐)
Laravel如何与Inertia.js和Vue/React构建现代单页应用
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
Python文件操作最佳实践_稳定性说明【指导】
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
Bootstrap整体框架之CSS12栅格系统
Laravel如何配置和使用缓存?(Redis代码示例)
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
如何用景安虚拟主机手机版绑定域名建站?
米侠浏览器网页图片不显示怎么办 米侠图片加载修复
香港服务器租用费用高吗?如何避免常见误区?
Laravel如何生成API文档?(Swagger/OpenAPI教程)
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
韩国服务器如何优化跨境访问实现高效连接?
浅谈javascript alert和confirm的美化
简历没回改:利用AI润色让你的文字更专业
高端网站建设与定制开发一站式解决方案 中企动力
Laravel如何为API编写文档_Laravel API文档生成与维护方法
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
Windows Hello人脸识别突然无法使用
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
再谈Python中的字符串与字符编码(推荐)
EditPlus 正则表达式 实战(3)
头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?
Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】
大连网站制作公司哪家好一点,大连买房网站哪个好?
下一篇:如何在Linux上设置网络接口
下一篇:如何在Linux上设置网络接口

