android数据库框架 android四种启动模式

已经基本了解数据库操作的Android数据库,其实很简单,就是创建一个数据库,在里面创建一个表,然后每次操作数据库的时候重新打开数据库,指定当前创建的对象是可读的还是只读的,然后数据库版本号必须是整数,必须增加。具体思路如下:首先,编写一个MySQLiteOpenHelper类来继...

已经基本了解数据库操作的Android数据库,其实很简单,就是创建一个数据库,在里面创建一个表,然后每次操作数据库的时候重新打开数据库,指定当前创建的对象是可读的还是只读的,然后数据库版本号必须是整数,必须增加。具体思路如下:

首先,编写一个MySQLiteOpenHelper类来继承SQLiteOpenHelper类,并实现它的一些方法。代码如下:

//数据库版本号私有静态整数版本= 1;

//在SQLiteOpenHelper的子类中,此构造函数必须存在。

公共MySQLiteOpenHelper(Context上下文,字符串名,SQLiteDatabase。CursorFactory工厂,int版本){

//父类中的构造函数必须由超级调用

超级(上下文、名称、工厂、版本);}

//参数描述

//context:上下文对象

//name:数据库名称

//param:factory

//version:当前数据库的版本。该值必须是一个整数,并且处于递增状态。

公共MySQLiteOpenHelper(上下文Context,字符串名称,int版本)

{ this(上下文,名称,null,版本);

}

公共MySQLiteOpenHelper(上下文Context,字符串名称)

{ this(上下文、名称、版本);

}

//创建数据库时调用

@覆盖

公共void onCreate(SQLiteDatabase数据库)

{ system . out . println(“创建数据库和表格”);

//创建一个数据库并创建一个名为records的表

//SQLite数据创建支持的数据类型//整数数据、字符串类型、日期类型、二进制数据类型。

字符串sql = & # 8220create table user(id int主键,name varchar(200))”;

//execSQL用于执行SQL语句

//完成数据库的创建

db . exec SQL(SQL);

//在调用getWritableDatabase()或getReadableDatabase()方法之一之前,数据库实际上没有创建或打开

//当数据库升级时调用

//如果DATABASE_VERSION值改为2,系统在发现已有数据库版本不同时,会调用onUpgrade()方法。

@覆盖

public void on upgrade(SQLite database db,int oldVersion,int new version){ system . out . println(“更新后的数据库版本是:”+new version);}}

然后在***inactivity中执行以下操作,

首先,创建一个数据库和创建数据库的语句:

创建表用户(id int主键,name varchar(200))

意思是创建一个名为user的数据库,这个数据库有两个类,一个是pri***ry key ——id,表示id是这个数据库的关键字,另一个是长度为200的varchar。下面的代码是通过事件监控按钮实现的:

案例编号不稳定:

//创建SQLiteOpenHelper子类对象

MySQLiteOpenHelper db helper = new MySQLiteOpenHelper(this,”test _ carson & # 8221);

//在调用getWritableDatabase()或getReadableDatabase()方法之一之前,实际上不会创建或打开数据库。

SQLite database SQLite database = db helper . getwritabledatabase();

//SQLiteDatabase SQLiteDatabase = db helper . getreadbledatabase();

打破;

其次,更新数据库的版本号

案例编号升级:

//创建SQLiteOpenHelper子类对象

MySQLiteOpenHelper db helper _ upgrade = new MySQLiteOpenHelper(this,”test _ carson & # 8221,2);

//调用getWritableDatabase()方法创建或打开可读的数据库。

SQLiteDatabase SQLiteDatabase _ upgrade = db helper _ upgrade . getwritabledatabase();

//SQLiteDatabase SQLiteDatabase = db helper . getreadbledatabase();

打破;

第三,将一条数据输入数据库。

Emmm的类型有点像hash***p array,是一个键值对的数组。

case r . id . insert:system . out . println(“插入数据”);

//创建SQLiteOpenHelper子类对象

////注意,必须传入最新的数据库版本号。

MySQLiteOpenHelper db helper 1 = new MySQLiteOpenHelper(this,”test _ carson & # 8221,2);

//调用getWritableDatabase()方法创建或打开可读的数据库。

SQLiteDatabase SQLiteDatabase 1 = db helper 1 . getwritabledatabase();

//创建ContentValues对象content values 1 = new content values();

//插入键值对values 1 . put(“id & # 8221, 1);values 1 . put(“姓名”, “卡森”);

//调用insert()方法将数据插入数据库sqlitedatabase 1 . insert(“用户”,null,values 1);

//sqlitedatabase . exec SQL(“插入到用户(id,name)值(1,’卡森’)”);

//关闭数据库

SQLite database 1 . close();打破;

第四,查询数据库中的数据

//点击查询数据库case r . id . query:system . out . println(“查询数据”);

//创建DatabaseHelper对象mysqliteopenhelper db helper 4 = new mysqliteopenhelper(***in activity . this,”test _ carson & # 8221,2);

//调用getWritableDatabase()方法创建或打开可读的数据库。

SQLite database SQLite database 4 = dbhelper 4 . getreadabledatabase();

//调用SQLiteDatabase对象的查询方法进行查询

//返回一个游标对象:数据库查询返回的结果集对象

cursor cursor = sqlitedatabase 4 . query(“用户”,新字符串[]{ “id & # 8221, “姓名”}, “id=?”,新字符串[]{ “1”},null,null,null);

字符串id = null字符串名称= null

//将光标移动到下一行,从而判断结果集中是否有下一个数据。

//如果是,返回true,如果不是,返回false while(cursor . move to next()){ id = cursor . getstring(cursor . getcolumnindex(“id & # 8221));

name = cursor . getstring(cursor . getcolumnindex(“姓名”));

//输出查询结果

system . out . println(“查询的数据是:”+”id:“+id+”“+”姓名:“+姓名);}

//关闭数据库sqlitedatabase 4 . Close();打破;

第五,通过查找键来修改数据和更改值。

case r . id . modify:system . out . println(“修改数据”);

//创建DatabaseHelper对象

//将数据库的版本升级到2

//传入的版本号是2,比旧版本(1)大,所以会调用onUpgrade()来升级数据库。

MySQLiteOpenHelper db helper 2 = new MySQLiteOpenHelper(***in activity . this,”test _ carson & # 8221, 2);

//调用getWritableDatabase()获取可写的SQLiteDatabase对象

SQLiteDatabase SQLiteDatabase 2 = db helper 2 . getwritabledatabase();

//创建一个ContentValues对象content values 2 = new content values();

values 2 . put(“姓名”, “张三”);

//调用update方法修改数据库

sqlitedatabase 2 . update(“用户”,值2,“id=?”,新字符串[]{ “1”});

//关闭数据库sqlitedatabase 2 . Close();打破;

第六,删除数据,通过寻找键来删除整个键-值对。

case r . id . delete:system . out . println(“删除数据”);

//创建DatabaseHelper对象

MySQLiteOpenHelper db helper 3 = new MySQLiteOpenHelper(***in activity . this,”test _ carson & # 8221,2);//调用getWritableDatabase()方法创建或打开可读的数据库。

SQLite database SQLite database 3 = dbhelper 3 . getwritabledatabase();

//删除数据sqlitedatabase 3 . Delete(“用户”, “id=?”,新字符串[]{ “1”});

//关闭数据库sqlitedatabase 3 . Close();打破;

七。删除数据库操作

case r . id . delete _ database:system . out . println(“删除数据库”);

MySQLiteOpenHelper db helper 5 = new MySQLiteOpenHelper(***in activity . this,“test _ carson & # 8221,2);

//调用getReadableDatabase()方法创建或打开可读的数据库。

SQLiteDatabase SQLiteDatabase 5 = db helper 5 . getreadabledatabase();

//删除名为test.db的数据库

删除数据库(“test _ carson & # 8221);

本文来自抚琴绘长歌投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/610472.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 06-28
下一篇 06-28

相关推荐

  • java单元测试框架都有哪些 单元测试框架的作用

    文章是通过学习阿里巴巴Java开发手册整理的1。好的单元测试必须遵循AIR原则从宏观上来说,一个好的单元测试的特点是自动化、独立和可重复执行。答:自动(Auto***tic)I:独立(independence)r:可重复(repeatable)2。单元测试应该是全自动和非交互式的在测试单元中不允许使用Syste

    2023-07-24 08:41:01
    1058 0
  • mybatis插件原理 web前端三大主流框架

    一、导言在我们的日常开发工作中,不可避免的要检查当前程序执行的SQL语句,方便程序员解决问题。MP提供了两种方式来输出每个SQL语句及其执行时间。对于执行时间较长的SQL,可以停止运行,有助于发现问题。这两种方法只适用于开发环境,不推荐用于生产环境。二。性能分析插件

    2023-07-23 05:31:01
    160 0
  • ssh框架是什么

    品牌型号:联想 YOGA 14c/系统版本:windows7 SSH是指一个集成框架,包含struts、spring、hibernate,是目前流行的前端开源框架之一。Struts是一个基于MVC设计模式的Web应用框架,Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架,Hibernate是一个开放源代码的对象

    2023-07-15 04:46:01
    860 0
  • 企业运营框架的两大作用 2020最全运营知识及运营框架

    创造价值是真实的,利润只是结果。人生的一切都可以成功,都可以快乐,过程都可以轻松满足。——《心灵智能》而运营是企业管理中经常提到的,那么到底什么是运营,什么是运营呢?相信这个问题会让很多人停下来思考一会儿,甚至有人会疑惑。两者有区别吗?当然是有区别的。否则

    2023-07-14 07:47:01
    383 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信