android SQLite数据库

本文详细介绍了Android中使用的SQLite数据库,包括其特性、数据类型的灵活性、标准SQL支持情况及分页查询方法。此外还提供了创建数据库的具体步骤和示例代码。

android是一个小型的设备,不可能安装一个Mysql数据库在我们的手机手,本身手机上的内存就有限,所以android嵌入了一个很小的关系型数据库就是SQLite,和其他数据库不同的是SQLite存储数据时不区分类型,


比如:一个字段声明为Integer类型,我们也可以存入一个字符串类型数据,一个字段声明为Boolean类型,我们也可以存储一个浮点型数据

除非是主键被定义为Integer,这时只能存储64位整数,


创建数据库表时可以不指定数据类型,但是在实际的项目开发中,肯定是每人这么写的,这样其他人没办法读懂,不利于后期的维护,


SQLite支持大部分sql的标准语句,增删改查都是通用的,分页查询和MYsql相同

SELECT * FROM person LIMIT 20 OFFSET 10

SELECT * FROM person LIMIT10,20

指的是从第10+1条开始取20条数据


在android中创建数据库

1:继承SQLiteOpenHelper,因为SQLiteOpenHelper是抽象的类,它里面有二个抽象的方法需要子类去具体实现,因为抽象类他不知道子类的业务需求是什么,所以只能做成抽象的方法了

2:重写onCreate()

3:重写onUpGrade()

现在写一个例子说明下:

MyHelper.java

package com.handcool.sqlite;


import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;


public class MyHelper extends SQLiteOpenHelper {
private static final String DB_NAME="handcool";
private static final int version = 1;
private static final String TAG = "MyHelper";
public MyHelper(Context context) {
super(context, DB_NAME, null, version);
}
/**
* 当数据库被创建的时候 会自动执行onCreate()方法,当已有数据库时,就不会再执行此方法
* 也就是说这个方法只会执行一次,一般在这都是创建表的结构
*/
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE person(id,Integer,name varchar(20))");
Log.e(TAG,"onCreate方法执行了");
}
/**
* 从上面的构造函数中最后一个参数(version)我们知道这是数据库版本,从1开始,当数据库版本发生变化时,会执行onUpgrade()方法
* 一般添加什么字段啊 ,对数据库进行一些操作  都在这执行
*/
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.e(TAG,"onUpgrade方法执行了");
}
}

这个类继承了SQLiteOpenHelper类,就代表着数据库,我们再写个单元测试,测试下他的结果;如图


就执行了onCreate()方法,而没有执行onUpgrade()方法,因为数据库版本没有升级,所以这个验证时对的,再看看表的结构


数据库文件在data/data/包名/databases目录下,请看截图:


我在这里放了一个错误,之前的数据库文件名后缀没有写.db,导致我 无法查看其表的结构,

原来好像是后缀名写不写都是可以的,今天没写就遇到了这个问题,


现在我把数据库版本改为2,看看打印的日记信息


发现oncreate()方法没有打印出来,所以我们可以总结为

1:oncreate()方法只有在数据库创建的时候才会调用,但数据库已存在时,不会执行oncreate()方法,

2:但数据库版本发生变化时,会执行onUpgra()方法


在android2.3以后api有点变化,当我们把数据库版本从3改为2时,意味着数据库版本降级,那么会执行

@Override
public void onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
super.onDowngrade(db, oldVersion, newVersion);
}

这个方法















【博士论文复现】【阻抗建模、验证扫频法】光伏并网逆变器扫频与稳定性分析(包含锁相环电流环)(Simulink仿真实现)内容概要:本文档是一份关于“光伏并网逆变器扫频与稳定性分析”的Simulink仿真实现资源,重点复现博士论文中的阻抗建模与扫频法验证过程,涵盖锁相环和电流环等关键控制环节。通过构建详细的逆变器模型,采用小信号扰动方法进行频域扫描,获取系统输阻抗特性,并结合奈奎斯特稳定判据分析并网系统的稳定性,帮助深入理解光伏发电系统在弱电网条件下的动态行为与失稳机理。; 适合人群:具备电力电子、自动控制理论基础,熟悉Simulink仿真环境,从事新能源发电、微电网或电力系统稳定性研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握光伏并网逆变器的阻抗建模方法;②学习基于扫频法的系统稳定性分析流程;③复现高水平学术论文中的关键技术环节,支撑科研项目或学位论文工作;④为实际工程中并网逆变器的稳定性问题提供仿真分析手段。; 阅读建议:建议读者结合相关理论教材与原始论文,逐步运行并调试提供的Simulink模型,重点关注锁相环与电流控制器参数对系统阻抗特性的影响,通过改变电网强度等条件观察系统稳定性变化,深化对阻抗分析法的理解与应用能力。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值