# ohos-NoSql **Repository Path**: HarmonyOS-tpc/ohos-NoSql ## Basic Information - **Project Name**: ohos-NoSql - **Description**: Lightweight, simple structured NoSQL database for openharmony - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2021-04-15 - **Last Updated**: 2023-04-17 ## Categories & Tags **Categories**: harmonyos-database **Tags**: None ## README # ohos-NoSql Lightweight, simple structured NoSQL database for openharmony # Download ``` dependencies { implementation "io.openharmony.tpc.thirdlib:ohos-NoSql:1.0.0" } ``` Save your datas as a structured tree ```java noSql.put("/users/", "florent") noSql.put("/users/", "kevin") nosql.put("/identifiers/florent", 10) nosql.put("/identifiers/kevin", 12) ``` The data structure will be ```java / ---users/ ---"florent" ---"kevin" ---identifiers/ ---florent/ ---10 ---kevin/ ---12 ``` It'll be simple to search data ```java int myId = noSql.get("/identifiers/florent/").integer(); ``` # Serialize objects You can simply add nodes from POJOS ```java final User user = new User( "flo", new House("paris"), Arrays.asList(new Car("chevrolet camaro"), new Car("ford gt")) ); noSql.put("/user/florent/", user); ``` ```java / ---users/ ---florent/ ---name/ ---"flo" ---house/ ---adress/ ---"paris" ---cars/ ---0/ ---model/ ---"chevrolet camaro" ---1/ ---model/ ---"ford gt" ``` # Get Objects from node Or fetch nodes directly into Java Objects ```java User user = noSql.get("/user/florent/", User.class); ``` # Navigate ```java noSql.node("/identifiers/") .child("florent") .childNodes() .get(1) .put("country", "france"); ``` # Listeners You can listen for nodes updates ```java noSql.notify("/user/", new Listener() { @Override public void nodeChanged(String path, NoSql.Value value) { //notified when : // - the node is created // - the node is deleted // - a subnode is added / updated } }); ``` # Init ohos-NoSql need to be initialized to store your objects ```java public class MainApplication extends AbilityPackage { @Override public void onInitialize() { super.onInitialize(); AndroidNoSql.initWithDefault(context); } } ``` You can also define the datasavers using initWith, it means you can store your data into SqlDatabase, or any storage library your want ;) # Credits Author: Florent Champigny Blog : [http://www.tutos-android-france.com/](http://www.www.tutos-android-france.com/) Fiches Plateau Moto : [https://www.fiches-plateau-moto.fr/](https://www.fiches-plateau-moto.fr/) License -------- Copyright 2017 Florent37, Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.