鸿蒙HarmonyOS 对象关系映射数据库ORM 事务

 DatabaseHelper helper = new DatabaseHelper(this);
        // context入参类型为ohos.app.Context,注意不要使用slice.getContext()来获取context,请直接传入slice,否则会出现找不到类的报错。
        OrmContext context = helper.getOrmContext("BookStore", "BookStore.db", BookStore.class);
         // 没有事务原子化的情况
        try{
            User user3 = new User();
            user3.setFirstName("shiwu1");
            user3.setLastName("shiwu1");
            user3.setAge(29);
            user3.setBalance(100.51);
            boolean isSuccessed31 = context.insert(user3);//保存到内存
            boolean isSuccessed32 = context.flush();//保存到本地数据库
            System.out.println("sSuccessed====>"+isSuccessed31+","+isSuccessed32);
            double c=1/0;
            OrmPredicates predicates3 = context.where(User.class).equalTo("firstName", "shiwu1");
            List<User> u3 = context.query(predicates3);
            User u31 = u3.get(0);
            u31.setFirstName("修改1");
            context.update(u31);
            context.flush();
        }catch (Exception err){
            System.out.println("====>出错了,没有进行数据回滚");
        }
        // 有事务的情况
        context.beginTransaction();
        try{
            User user4 = new User();
            user4.setFirstName("shiwu2");
            user4.setLastName("shiwu2");
            user4.setAge(29);
            user4.setBalance(100.51);
            boolean isSuccessed41 = context.insert(user4);//保存到内存
            boolean isSuccessed42 = context.flush();//保存到本地数据库
            System.out.println("sSuccessed====>"+isSuccessed41+","+isSuccessed42);
            double c2=1/0;
            OrmPredicates predicates3 = context.where(User.class).equalTo("firstName", "shiwu2");
            List<User> u5 = context.query(predicates3);
            User u51 = u5.get(0);
            u51.setFirstName("修改2");
            context.update(u51);
            context.flush();
            context.commit();
        }catch (Exception err){
            System.out.println("====>出错了,进行回滚");
            context.rollback();
        }
        //打印结果
        OrmPredicates predicates5 = context.where(User.class).equalTo("age", 29);
        List<User> u5= context.query(predicates5);
        System.out.println("u1r11====>"+u5);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值