# 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。
## 效果预览

## 约束与限制
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/)