开发者社区> 游客ytudqddg72jbc> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

【鸿蒙】关系型数据库在真机的使用

简介: 1.组件 在真机上演示,创建数据库和打开数据库,只用button组件就行了
+关注继续查看

1.组件

在真机上演示,创建数据库和打开数据库,只用button组件就行了

<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:height="match_parent"
    ohos:width="match_parent"

    ohos:orientation="vertical">
    <Button
        ohos:id="$+id:crate_db_button"
        ohos:height="match_content"
        ohos:width="match_content"
        ohos:text="创建数据库"
        ohos:text_size="20vp"
        ohos:text_color="#ffff"
        ohos:background_element="$graphic:button_bg"
        ohos:top_padding="8vp"
        ohos:left_padding="50vp"
        ohos:right_padding="50vp"
        ohos:layout_alignment="horizontal_center"
        ohos:top_margin="30vp"
        ohos:text_weight="700"/>

    <Button
        ohos:id="$+id:open_db_button"
        ohos:height="match_content"
        ohos:width="match_content"
        ohos:text_size="20vp"
        ohos:text="打开数据库"
        ohos:text_color="#ffff"
        ohos:background_element="$graphic:button_bg"
        ohos:top_padding="8vp"
        ohos:left_padding="50vp"
        ohos:right_padding="50vp"
        ohos:layout_alignment="horizontal_center"
        ohos:top_margin="30vp"
        ohos:text_weight="700"/>

</DirectionalLayout>

按钮样式

<?xml version="1.0" encoding="UTF-8" ?>
<shape xmlns:ohos="http://schemas.huawei.com/res/ohos"
       ohos:shape="rectangle">
    <corners ohos:radius="15"/>
    <solid
        ohos:color="blue"/>
</shape>

2.

创建和启动数据库的代码分开来写,先初始化按钮


image


然后将前面文章所写创建和打开的代码分别放入到两个按钮当中,

创建数据库

cdb = (Button) findComponentById(ResourceTable.Id_crate_db_button);

        cdb.setClickedListener(c->{
            // 创建数据库
            StoreConfig.Builder builder = new StoreConfig.Builder();
            String keystr = "123456";
            builder.setName("stan.db")
                    .setSyncMode(null)
                    .setJournalMode(StoreConfig.JournalMode.MODE_WAL)
                    .setStorageMode(StoreConfig.StorageMode.MODE_DISK)
                    .setReadOnly(false)
                    .setDatabaseFileType(DatabaseFileType.NORMAL)
                    //加密
                    .setEncryptKey(keystr.getBytes());

            StoreConfig config = builder.build();
            //创建数据库的实质循环,重要的核心类
            DatabaseHelper helper=new DatabaseHelper(MainAbilitySlice.this);
            //进一步通过helper,获取数据库对象
            //传入四个参数
            RdbStore rdbStore = helper.getRdbStore(config, 1, Callback, null);

            ValuesBucket valuesBucket = new ValuesBucket();

            valuesBucket.putInteger("id",1);
            valuesBucket.putString("name","zhangsan");
            valuesBucket.putInteger("age", 28);
            valuesBucket.putDouble("salary", 8000.5);
            long test = rdbStore.insert("test", valuesBucket);
            System.out.println("========test"+test);

            valuesBucket.putInteger("id",2);
            valuesBucket.putString("name","wangwu");
            valuesBucket.putInteger("age", 28);
            valuesBucket.putDouble("salary", 80001.5);
            long test1 = rdbStore.insert("test", valuesBucket);
            System.out.println("========test"+test1);

        });

读取数据

odb = (Button) findComponentById(ResourceTable.Id_open_db_button);

        odb.setClickedListener(component -> {
            // 打开已经存在的数据库
            StoreConfig.Builder builder = new StoreConfig.Builder();
            String keystr = "123456";
            builder.setName("stan.db")
                    .setSyncMode(null)
                    .setJournalMode(StoreConfig.JournalMode.MODE_WAL)
                    .setStorageMode(StoreConfig.StorageMode.MODE_DISK)
                    .setReadOnly(false)
                    .setDatabaseFileType(DatabaseFileType.NORMAL)
                    //加密
                    .setEncryptKey(keystr.getBytes());

            StoreConfig config = builder.build();
            DatabaseHelper helper=new DatabaseHelper(MainAbilitySlice.this);
            //进一步通过helper,获取数据库对象
            //传入四个参数
            RdbStore rdbStore = helper.getRdbStore(config, 1, openCallback, null);
            ResultSet resultSet = rdbStore.
                    querySql("select id,name,age,salary from test where age=? order by salary desc", new String[]{"28"});
            for (int i=0;i<resultSet.getRowCount();i++){
                resultSet.goToRow(i);
                System.out.println("+++++++++id"+resultSet.getInt(resultSet.getColumnIndexForName("id")));
                System.out.println("+++++++++name"+resultSet.getString(resultSet.getColumnIndexForName("name")));
                System.out.println("+++++++++age"+resultSet.getInt(resultSet.getColumnIndexForName("age")));
                System.out.println("+++++++++salary"+resultSet.getDouble(resultSet.getColumnIndexForName("salary")));
            }


        });

3.演示效果

创建后打开数据库


image

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【鸿蒙】单版本分布式数据库实战
周末如期而至,学习也不能停止,分布式数据库实战搞起! 1).要使用分布式的化首先就得打开权限,在config.json中添加permisssion权限。
0 0
【鸿蒙】关系型数据库的自定义创建
文章目录 前言 1. 使用的API 2.方法介绍 3.效果
0 0
MongoDB快速上手,聊聊这款火了一阵又销声匿迹的非关系型数据库
事情的起因要从最近的一个新产品说起,最近部门有一个新的大数据产品规划,在考虑技术实现时,有一个动态表字段扩展的需求,比如原来表结构里只有a、b字段,需要不断的往里新增c、d、e等等字段,并且数据量也特别大。
0 0
鸿蒙开发实例|分布式文件服务
鸿蒙开发实例|分布式文件服务
0 0
iOS 数据存储之我见
引言: iOS的数据存储与缓存涉及到的知识方方面面,有蛮多需要去好好了解了解,那么做为移动设备的应用,离线数据的重要性,相对于PC应用显得重要的多.
1253 0
细数 Windows 平台上的 NoSQL 数据库
从可查询的分布式解决方案,如MongoDB,到简单的分布式Key/Value存储解决方案,如Cassandra。此外,还有Riak,Tokyo Cabinet,Voldemort,CouchDB和Redis。
648 0
安卓Hawk数据库
安卓Hawk数据库 Hawk数据存储工具,使用超简单,可以替代SharePreference。 Hawk 是一个非常便捷的数据库  . 操作数据库只需一行代码 , 能存任何数据类型 . github 地址: https://github.
1506 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
最流行的关系型数据库 是如何在云端打造的
立即下载
手机卫士性能优化方案
立即下载
微信移动客户端-数据存储优化实践
立即下载