• HarmonyOS 基础数据库


    1.配置

    2.使用

    一 配置

    javapoet_java.jar  

    orm_annotations_java.jar

    orm_annotations_processor_java.jar

    这三个包拷贝到项目libs目录后配置2个地方。

    compileOptions {
    annotationEnabled true
    }
    compile files(
    "./libs/javapoet_java.jar",
    "./libs/orm_annotations_java.jar",
    "./libs/orm_annotations_processor_java.jar"
    )
    annotationProcessor files(
    "./libs/javapoet_java.jar",
    "./libs/orm_annotations_java.jar",
    "./libs/orm_annotations_processor_java.jar"
    )

    
    

    二 使用

    1.新增

    2.更新

    3.删除

    4.查询

    package com.example.demo2.data;
    
    public class Student {
        int id;
        String name;
        int age;
        double salary;
    
        public Student() {
        }
    
        public Student(int id, String name, int age, double salary) {
            this.id = id;
            this.name = name;
            this.age = age;
            this.salary = salary;
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public double getSalary() {
            return salary;
        }
    
        public void setSalary(double salary) {
            this.salary = salary;
        }
    
        @Override
        public String toString() {
            return "Student{" +
                    "id=" + id +
                    ", name='" + name + '\'' +
                    ", age=" + age +
                    ", salary=" + salary +
                    '}';
        }
    }
    package com.example.demo2.utils;
    
    import com.example.demo2.data.Student;
    import ohos.app.Context;
    import ohos.data.DatabaseHelper;
    import ohos.data.rdb.*;
    import ohos.data.resultset.ResultSet;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class DBUtils {
        private RdbStore rdbStore;
        private DatabaseHelper databaseHelper;
    
        public DBUtils(Context context) {
            databaseHelper = new DatabaseHelper(context);
            initDB();
        }
    
        private void initDB() {
            StoreConfig storeConfig = StoreConfig.newDefaultConfig("school.db");
    
            rdbStore = databaseHelper.getRdbStore(storeConfig, 1, new RdbOpenCallback() {
                @Override
                public void onCreate(RdbStore rdbStore) {
                    rdbStore.executeSql("create table if not exists " +
                            "student(id integer primary key autoincrement," +
                            "name text not null,age integer,salary real)");
                }
    
                @Override
                public void onUpgrade(RdbStore rdbStore, int i, int i1) {
    
                }
            });
        }
    
        public boolean insertStudent(Student student) {
            ValuesBucket valuesBucket = new ValuesBucket();
            valuesBucket.putInteger("age", student.getAge());
            valuesBucket.putString("name", student.getName());
            valuesBucket.putDouble("salary", student.getSalary());
    
            long insert = rdbStore.insert("student", valuesBucket);
            return insert > 0 ? true : false;
        }
    
        public boolean updateStudent(Student student) {
            ValuesBucket valuesBucket = new ValuesBucket();
            valuesBucket.putInteger("age", student.getAge());
            valuesBucket.putString("name", student.getName());
            valuesBucket.putDouble("salary", student.getSalary());
    
            RdbPredicates rdbPredicates = new RdbPredicates("student");
            rdbPredicates.equalTo("id", student.getId());
    
            int t = rdbStore.update(valuesBucket, rdbPredicates);
    
            return t > 0 ? true : false;
        }
    
        public boolean deleteStudent(Student student) {
            RdbPredicates rdbPredicates = new RdbPredicates("student");
            rdbPredicates.equalTo("id", student.getId());
    
            int t = rdbStore.delete(rdbPredicates);
    
            return t > 0 ? true : false;
        }
    
        public Student queryById(int id) {
            Student student = new Student();
            RdbPredicates rdbPredicates = new RdbPredicates("student");
            rdbPredicates.equalTo("id", id);
            ResultSet query = rdbStore.query(rdbPredicates, new String[]{"id", "name", "age", "salary"});
            while (query.goToNextRow()) {
                student.setId(query.getInt(query.getColumnIndexForName("id")));
                student.setName(query.getString(query.getColumnIndexForName("name")));
                student.setAge(query.getInt(query.getColumnIndexForName("age")));
                student.setSalary(query.getDouble(query.getColumnIndexForName("salary")));
            }
    
            return student;
        }
    
        public List<Student> queryList(String name) {
            List<Student> list = new ArrayList<Student>();
            RdbPredicates rdbPredicates = new RdbPredicates("student");
            rdbPredicates.like("name", name);
            ResultSet query = rdbStore.query(rdbPredicates, new String[]{"id", "name", "age", "salary"});
            while (query.goToNextRow()) {
                Student student = new Student();
                student.setId(query.getInt(query.getColumnIndexForName("id")));
                student.setName(query.getString(query.getColumnIndexForName("name")));
                student.setAge(query.getInt(query.getColumnIndexForName("age")));
                student.setSalary(query.getDouble(query.getColumnIndexForName("salary")));
                list.add(student);
            }
    
            return list;
        }
    }
    package com.example.demo2.slice;
    
    import com.example.demo2.ResourceTable;
    import com.example.demo2.data.Student;
    import com.example.demo2.utils.DBUtils;
    import ohos.aafwk.ability.AbilitySlice;
    import ohos.aafwk.content.Intent;
    import ohos.agp.components.Button;
    import ohos.agp.components.Component;
    import ohos.hiviewdfx.HiLog;
    import ohos.hiviewdfx.HiLogLabel;
    
    import java.util.List;
    
    public class DBTestSlice extends AbilitySlice {
        private final HiLogLabel hiLogLabel = new HiLogLabel(HiLog.LOG_APP, 1, "DBTestSlice");
    
        @Override
        protected void onStart(Intent intent) {
            super.onStart(intent);
            super.setUIContent(ResourceTable.Layout_db_test);
    
            Button add = (Button) findComponentById(ResourceTable.Id_btnAdd);
            Button update = (Button) findComponentById(ResourceTable.Id_btnUpdate);
            Button delete = (Button) findComponentById(ResourceTable.Id_btnDelete);
            Button one = (Button) findComponentById(ResourceTable.Id_btnQueryById);
            Button list = (Button) findComponentById(ResourceTable.Id_btnQueryAll);
            add.setClickedListener(this::onClick);
            update.setClickedListener(this::onClick);
            delete.setClickedListener(this::onClick);
            one.setClickedListener(this::onClick);
            list.setClickedListener(this::onClick);
        }
    
        private void onClick(Component component) {
            if (component.getId() == ResourceTable.Id_btnAdd) {
                try {
                    for (int i = 0; i < 10; i++) {
                        Student student = new Student(i, "jack", 30 + i, 12000);
    
                        boolean b = new DBUtils(DBTestSlice.this).insertStudent(student);
                        if (b) {
                            HiLog.info(hiLogLabel, "---插入成功-----" + i);
                        }
                    }
    
                } catch (Exception e) {
                    HiLog.info(hiLogLabel, "---插入失败-----" + e.getMessage());
                }
            }
            if (component.getId() == ResourceTable.Id_btnQueryById) {
                try {
                    Student student = new DBUtils(DBTestSlice.this).queryById(0);
    
                    HiLog.info(hiLogLabel, "---查询1条成功-----");
                    HiLog.info(hiLogLabel, student.getName());
                } catch (Exception e) {
                    HiLog.info(hiLogLabel, "---查询1条失败-----" + e.getMessage());
                }
            }
            if (component.getId() == ResourceTable.Id_btnQueryAll) {
                try {
                    List<Student> list = new DBUtils(DBTestSlice.this).queryList("jack");
                    HiLog.info(hiLogLabel, "---查询全部:size-----" + list.size());
                    for (int i = 0; i < list.size(); i++) {
                        HiLog.info(hiLogLabel, list.get(i).toString());
                    }
                    HiLog.info(hiLogLabel, "---查询全部成功-----");
    
                } catch (Exception e) {
                    HiLog.info(hiLogLabel, "---查询全部失败-----" + e.getMessage());
                }
            }
        }
    
        @Override
        protected void onActive() {
            super.onActive();
        }
    
        @Override
        protected void onForeground(Intent intent) {
            super.onForeground(intent);
        }
    }
    <?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:alignment="center"
        ohos:orientation="vertical">
    
        <Button
            ohos:id="$+id:btnAdd"
            ohos:height="50vp"
            ohos:width="200vp"
            ohos:background_element="$graphic:background_button"
            ohos:text="新增1条数据"
            ohos:text_color="#FFFFFF"
            ohos:text_size="20fp"
            ohos:top_margin="20vp">
        </Button>
    
        <Button
            ohos:id="$+id:btnDelete"
            ohos:height="50vp"
            ohos:width="200vp"
            ohos:background_element="$graphic:background_button"
            ohos:text="删除1条数据"
            ohos:text_color="#FFFFFF"
            ohos:text_size="20fp"
            ohos:top_margin="20vp">
        </Button>
    
        <Button
            ohos:id="$+id:btnUpdate"
            ohos:height="50vp"
            ohos:width="200vp"
            ohos:background_element="$graphic:background_button"
            ohos:text="更新1条数据"
            ohos:text_color="#FFFFFF"
            ohos:text_size="20fp"
            ohos:top_margin="20vp">
        </Button>
    
        <Button
            ohos:id="$+id:btnQueryById"
            ohos:height="50vp"
            ohos:width="200vp"
            ohos:background_element="$graphic:background_button"
            ohos:text="查询1条数据"
            ohos:text_color="#FFFFFF"
            ohos:text_size="20fp"
            ohos:top_margin="20vp">
        </Button>
    
        <Button
            ohos:id="$+id:btnQueryAll"
            ohos:height="50vp"
            ohos:width="200vp"
            ohos:background_element="$graphic:background_button"
            ohos:text="查询全部数据"
            ohos:text_color="#FFFFFF"
            ohos:text_size="20fp"
            ohos:top_margin="20vp">
        </Button>
    </DirectionalLayout>

     

  • 相关阅读:
    Solidworks如何设置零件材料,如何评估零件质量
    Office 如何双面打印Word文档
    Discuz常见小问题2-如何在新建的页面上只显示一部分板块
    Discuz常见小问题2-如何在数据库搜索指定关键字
    Discuz常见小问题2-如何修改整个网站的默认字体为微软雅黑
    Discuz常见小问题2-如何修改管理员密码,修改admin账户密码
    php使用include报错require_once(../include.php): failed to open stream: No such file or directo
    PHP中的__get()和__set()方法获取设置私有属性
    php->是什么意思
    PHP中require(),include(),require_once()和include_once()有什么区别
  • 原文地址:https://www.cnblogs.com/ligenyun/p/15640966.html
Copyright © 2020-2023  润新知