# SQLTransaction **Repository Path**: scenario-samples/sqltransaction ## Basic Information - **Project Name**: SQLTransaction - **Description**: 【鸿蒙 Harmony Next 示例 代码】数据库事务可以保证指一组数据库操作要么全部执行成功,要么全部回滚。鸿蒙关系型数据库提供了事务相关接口 beginTransaction、commit、rollBack。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2025-03-12 - **Last Updated**: 2025-05-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RDB事务的使用 ## 介绍 数据库事务可以保证指一组数据库操作要么全部执行成功,要么全部回滚。 鸿蒙关系型数据库提供了事务相关接口 beginTransaction、commit、rollBack。 ## 效果预览 ![image](screenshots/ScreenShot.gif) ## 约束与限制 1.仅支持标准系统上运行,支持设备:华为手机或运行在DevEco Studio上的华为手机设备模拟器。 2.支持 API Version 12 Release及以上版本。 3.支持 HarmonyOS 5.0.0 Release SDK及以上版本。 4.需要使用DevEco Studio 5.0.0 Release及以上版本进行编译运行。 ## 使用说明 点击按钮查看对应效果。 ## 实现思路 1. 事务插入 ```typescript async transactionInsert(name: string, age: number, salary: number) { // 插入数据 if (this.rdbStore != undefined) { const valueBucket: ValuesBucket = { NAME: name, AGE: age, SALARY: salary }; try { //开启事务 this.rdbStore.beginTransaction(); await this.rdbStore.insert('STUDENT', valueBucket) } catch (err) { //回滚事务 let code = (err as BusinessError).code; let message = (err as BusinessError).message hilog.error(0x0000,'TAG',`Transaction failed, code is ${code},message is ${message}`); this.rdbStore.rollBack() return; } } } ``` 2. 事务提交 ```typescript async transactionCommit() { if (this.rdbStore != undefined) { try { //提交事务 this.rdbStore.commit(); } catch (err) { //回滚事务 let code = (err as BusinessError).code; let message = (err as BusinessError).message hilog.error(0x0000,'TAG',`Transaction failed, code is ${code},message is ${message}`); this.rdbStore.rollBack() return; } } } ``` 3. 事务回滚 ```typescript async transactionRollBack() { if (this.rdbStore != undefined) { try { //回滚 this.rdbStore.rollBack() } catch (err) { //回滚事务 let code = (err as BusinessError).code; let message = (err as BusinessError).message hilog.error(0x0000,'TAG',`Transaction failed, code is ${code},message is ${message}`); this.rdbStore.rollBack() return; } } } ``` ## 工程目录 ``` entry/src/main/ets/ |---database | |---Rdb.ets |---pages | |---Index.ets // 主页 ``` ## 参考文档 [@ohos.data.relationalStore (关系型数据库)](https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V13/js-apis-data-relationalstore-V13) ## ChangeLog | 修改内容 | 时间 | |--------|------------| | 第一次提交 | 2025.03.12 | ## 一份简单的问卷反馈 亲爱的Harmony Next开发者,您好!
为了协助您高效开发,提高鸿蒙场景化示例的质量,希望您在浏览或使用后抽空填写一份简单的问卷,我们将会收集您的宝贵意见进行优化:heart: [:arrow_right: **点击此处填写问卷** ](https://wj.qq.com/s2/19042938/95ab/)