花粉乐分享平台宣传视频
> 华为资讯 > 华为资讯 > 鸿蒙编程 > 鸿蒙应用开发中对关系数据库的操作方法
鸿蒙应用开发中对关系数据库的操作方法
来源:带娃学编程1001
2022-12-01 13:46:59
491
管理

关系数据库用于存储结构化数据,移动开发中常用SQLite等轻量级数据库。数据库常见的操作是增、删、改、查,其方法如下:

一、创建数据库

假设数据库名为mydatabase.sqlite,表名为employee,包含序号(id)、姓名(name)、年龄(age)、性别(sex)、部门(department)等字段。代码如下:

private RdbStore getMyDatabaseRdbStore(){ DatabaseHelper helper = new DatabaseHelper(getContext()); StoreConfig config = StoreConfig.newDefaultConfig("mydatabase.sqlite"); RdbStore store = helper.getRdbStore(config, 1, new RdbOpenCallback() { @Override public void onCreate(RdbStore rdbStore) { rdbStore.executeSql("CREATE TABLE IF NOT EXISTS employee (" "id INTEGER PRIMARY KEY AUTOINCREMENT," "name TEXT NOT NULL," "age INTEGER," "sex TINYINT," "department TEXT)"); } @Override public void onUpgrade(RdbStore rdbStore, int i, int i1) { } }); return store; }

二、增加数据

通过4个TextField(tfName、tfAge、tfSex、tfDepartment)获得输入数据并存储,将操作情况显示在Text组件(text)上。

RdbStore store = getMyDatabaseRdbStore();ValuesBucket values = new ValuesBucket();try {String name = tfName.getText();int age = Integer.parseInt(tfAge.getText());int sex = Integer.parseInt(tfSex.getText());String department = tfDepartment.getText();values.putString("name",name);values.putInteger("age",age);values.putInteger("sex",sex);values.putString("department",department);}catch (Exception e){e.printStackTrace();}long id = store.insert("employee",values);if(id == -1){text.setText("增加数据失败!");}else{text.setText("增加数据成功,序号: " id "。");}store.close();

三、删除数据

从TexeField中获取删除条件,执行删除操作,将结果显示在Text组件上。

String searchName = tfSearch.getText();RdbStore Store = getMyDatabaseRdbStore();RdbPredicates rdbPredicates = new RdbPredicates("employee").equalTo("name",searchName); int rowNum = Store.delete(rdbPredicates);if(rowNum == -1){text.setText("删除失败");}else{text.setText("删除成功");}Store.close();

四、更新数据

从TexeField中获取更新数据条件,将其“部门”修改为“研发部”,将结果显示在Text组件上。

String searchName = tfSearch.getText();RdbStore store = getMyDatabaseRdbStore();RdbPredicates rdbPredicates = new RdbPredicates("employee") .equalTo("name",searchName);ValuesBucket bucket = new ValuesBucket();bucket.putString("department","研发部");int rowNum = store.update(bucket,rdbPredicates);if(rowNum == -1){text.setText("更新失败");}else{text.setText("更新成功");}store.close();

五、查询数据

通过1个TextField获得查询的条件(如人员姓名),实现模糊查找,显示在Text组件上。

RdbStore store = getMyDatabaseRdbStore();String searchName = tfSearch.getText();String[] col = new String[]{"id","name","age","sex","department"};text.setText("");if(searchName != null){ResultSet resultSet = store.querySql("select * from employee where " "name like ?",new String[]{"%" searchName "%"});String showtext = "";while(resultSet.goToNextRow()) {int id = resultSet.getInt(0);String name = resultSet.getString(1);int age = resultSet.getInt(2);int sex = resultSet.getInt(3);String department = resultSet.getString(4);showtext = id " . " name " - " age " - " sex " - " department; text.setText(showtext ="n");}resultSet.close();}store.close();

在更新、删除等操作中常先进行查找操作,判断所更新、删除的数据是否存在,进而进行下步操作,此处省略。每种操作之后要把数据库关闭。

花粉社群VIP加油站

2
点赞
赏礼
赏钱
0
收藏
免责声明:本文仅代表作者个人观点,与花粉乐分享无关。其原创性以及文中陈述文字和内容未经本网证实,对本文以及其中全部或者 部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
凡本网注明 “来源:XXX(非花粉乐分享)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对 其真实性负责。
如因作品内容、版权和其它问题需要同本网联系的,请在一周内进行,以便我们及时处理。
QQ:2443165046 邮箱:info@hflfx.com
关于作者
吵架没输过..(采蜜高手)
文章
518
主题
5
关注
0
粉丝
0
点击领取今天的签到奖励!
签到排行
随手拍
54个圈友 0个话题
华为手机随手拍,记录生活点滴之美好
华为P30pro
51个圈友 0个话题
这里是华为P30pro手机交流圈,欢迎华为P30pro用户进群交流
体验官
60个圈友 2个话题
华为花粉体验官,体验官专属的交流群
登录后查看您创建的圈子
登录后查看您创建的圈子
所有圈子
杭州互联网违法和不良信息举报平台 网络110报警服务 浙ICP备17046585号
2
0
分享
请选择要切换的马甲:

个人中心

每日签到

我的消息

内容搜索