首页 > 其他分享 >Android开发学习之路01

Android开发学习之路01

时间:2024-03-06 21:36:17浏览次数:23  
标签:SQLite 01 创建 数据库 之路 MySQLiteOpenHelper text Android public

今日跟着一个人进行了Android studio 上创建数据库和数据表的联系,这应该是老师留的作业中,进行数据库的连接。

原文链接:https://blog.csdn.net/fjh_xx/article/details/131404230

一.前言

二.SQLite数据库介绍

1.什么是SQLite数据库

2.特点

3.SQLite 操作API

4.SQLite数据类型

三.SQlite数据库的使用

1.创建类继承SQLiteOPenHelper

2.创建数据库

3.创建数据库表

4.更新表添加字段

完整代码

扩展

总结

一.前言
我们在使用Android进行开发的时候不可避免的要使用到数据,那么就需要用到数据库,来对数据进行操作。而Android系统就内置了SQlite。

二.SQLite数据库介绍
1.什么是SQLite数据库
SQLite是一款轻量级的关系型数据库,它运算速度快,占用资源少,在内存中只需要占用几百KB的存储空间。

2.特点
轻量级
独立性
隔离性
跨平台
安全性
多语言接口
3.SQLite 操作API
Android SDK提供了一系列对数据库进行操作的类和接口。常用的数据库操作类有:

SQLiteOpenHelper 类(我们今天使用到的是这个)

SQLiteOpenHelper类中常用的方法
onCreate(SQliteDatabase db) 数据库第一次创建时,会调用
onIpgrade(SQliteDatabase db, int i, int i1) 数据库升级时自动调用
getWritableDatabase() 打开可读/写的数据库
getReadableDatabase() 打开可读的数据库
close() 关闭数据库

• 该类是一个抽象类,用于创建数据库和数据库版本更新。
SQLiteDatabase 类
• 该类是一个数据库访问类,封装了一系列数据库操作的API,可以对数据进行增删改查操作。
Cursor接口
• 是一个游标接口,在数据库操作中作为返回值,相当于结果集ResultSet。

4.SQLite数据类型
integer:整型
real:浮点型
text:文本类型
blob:二进制类型
三.SQlite数据库的使用
1.创建类继承SQLiteOPenHelper
1.先创建一个项目,然后创建一个类,我这里创建的是MySQLiteOpenHelper类,可以再建一个db包把该类放在该目录下。

2.继承SQLiteOPenHelper,并点击实现onCreate方法和onUpgrade方法用于创建、升级数据库。

 

飘红不要害怕,点击红色小灯泡构造一下它的构造函数就可以了。

2.创建数据库
我们重写MySQLiteOpenHelper的构造方法,把后面的3个参数都写死,方便后面可以调用,然后写数据库名,还有数据库版本。

 

//部分代码
public class MySQLiteOpenHelper extends SQLiteOpenHelper {

Context mContext;

public MySQLiteOpenHelper(@Nullable Context context) {
super(context, "test", null, 1);
this.mContext = context;
}

}
3.创建数据库表
1.确定表的字段和类型,我以创建用户表为例。

user表
字段 字段类型 描述
id integer 主键自增
zh text 账号
mm text 密码
xm text 姓名
sjh integer 手机号
2.定义一个属性等于创建user表语句,这里其实和mysql的语句差不多。

3.在onCreate方法里面调用SQLiteDatabase.execSQL(CREATE_USER),里面是你刚刚定义的属性。

可以使用Toast提示,当程序启动成功时,是否创建数据库和数据库表了,只会执行一次。

 

//部分代码
public class MySQLiteOpenHelper extends SQLiteOpenHelper {

public static String CREATE_USER = "create table user (" +
"id integer primary key autoincrement," +
"zh text," +
"mm text," +
"xm text," +
"sjh integer)";

Context mContext;

public MySQLiteOpenHelper(@Nullable Context context) {
super(context, "test", null, 1);
this.mContext = context;
}

@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL(CREATE_USER);
Toast.makeText(mContext, "数据库首次创建成功!", Toast.LENGTH_SHORT).show();
}
}

 

4.在MainActivity添加数据库,添加数据库实例,然后数据库初始化。

MainActivity.java

//完整代码
package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;

import com.example.myapplication.db.MySQLiteOpenHelper;

public class MainActivity extends AppCompatActivity {

private MySQLiteOpenHelper mySQLiteOpenHelper;

private SQLiteDatabase db;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

initData();
}

private void initData() {
mySQLiteOpenHelper = new MySQLiteOpenHelper(this);
db = mySQLiteOpenHelper.getWritableDatabase();
}
}

当运行成功后,使用了Toast,页面会提示

 

 

标签:SQLite,01,创建,数据库,之路,MySQLiteOpenHelper,text,Android,public
From: https://www.cnblogs.com/Lyh3012648079/p/18057635

相关文章

  • android studio
    避坑:1.此处替换路径下载地址:https://mirrors.cloud.tencent.com/gradle/2.D:\app\gradle-6.7.1\caches\modules-2\files-2.1\org.jetbrains.kotlin\kotlin-compiler-embeddable\1.8.10\2a38b258da57285fb187fc329f7374c0751576af此处下载对应文件后将原文件替换注意修改......
  • 701. 二叉搜索树中的插入操作c
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*/structTreeNode*insertIntoBST(structTreeNode*root,intval){if(!root){structTreeNode*......
  • P3957 [NOIP2017 普及组] 跳房子
    原题链接题解二分加动态维护区间最大值注意设立变量的含义,改变变量值的规则code#include<bits/stdc++.h>#definelllonglongusingnamespacestd;llsum[500005]={0};structunit{llx,v;booloperator<(constunit&b)const{returnb.v>v;}//}room[5000......
  • Android Room DataBase
     AndroidRoomDataBase(一)https://blog.csdn.net/l_o_s/article/details/79346426AndroidRoomDataBase(二)https://blog.csdn.net/l_o_s/article/details/79348701AndroidRoomDataBase(三)https://blog.csdn.net/l_o_s/article/details/79388408使用AndroidJetpack......
  • 【2024-03-01】我们订了
    20:00亲爱的三月,请进。我是多么高兴,一直期待你光临。请摘下你的帽子,你一定是走来的,瞧你上气不接下气。亲爱的,别来无恙,等等,等等,你动身时自然可好。哦,快随我上楼,有许多话要对你说                               ......
  • Android.mk 使用 dagger2
    #Managesuseofannotationprocessors.##Atthemomentboththe-processorpathandthe-processor#flagsmustbespecifiedinordertouseannotationprocessors#asacodeindexingtoolthatwrapsjavacdoesn'tasyetsupport#thesamebehaviouras......
  • 我和我的DBA之路
       这几天,突然想写写这些年的工作总结,毕业至今快20年的回顾。   想到20年前,在做毕业设计的时候,当时是学的机械工程类专业,因为带毕业设计的老师兼职企业有个门户网站的需求,而我又会做点网站设计,带的老师破天荒给个企业做门户网站的毕业设计。  珍惜心:该网站可能此......
  • VSCode 发布时报error MSB4018: “CreateAppHost”任务意外失败
    大概率是杀毒软件问题,我的问题是有360杀毒导致的网上的方案有如下,也都进行了尝试:重启VisualStudio以管理员身份运行VisualStudio清理解决方案删除bin目录下的所有文件均无效,无奈之下继续寻找解决方案,发现用ProcessMonitor来监控到底是谁在搞鬼。通过下载ProcessMo......
  • 01_C++基本数据类型_算数类型
    1.算数类型算数类型主要分为两类——整型和浮点型带符号和无符号类型带符号:int、short、long和longlong,通过在这些类型名前添加unsigned可以得到无符号类型。 选择符号的准则:(1)数值不可能为负时,选择无符号类型。(2)使用int执行整数运算。(3)算数表达式不要使用char或bool,存放字......
  • 工作两年涨薪40%,揭秘我的学习之路!
    毕业出来工作差不多两年了,就呆过一家公司,主要做功能测试,会自己驱动做些自动化相关的工作,但不想就此止步,所以换了工作,最近刚获得了新Offer,涨薪幅度40%+,年薪大概25w。自己还挺满意的,不论薪资还是福利方面,希望未来能持续进步,不断成长。关于之前的工作我是从大二开始接触并学习......