Java object database android

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Java and Android Database — fast and lightweight without any ORM

License

objectbox/objectbox-java

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Читайте также:  Найти корни квадратного уравнения питон программа

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

ObjectBox Java Database (Kotlin, Android)

Java database — simple but powerful, frugal but fast. Embedded into your Android, Linux, macOS, iOS, or Windows app, store and manage data easily, enjoy ludicrous speed, build ecoconciously 💚

// Java Playlist playlist = new Playlist("My Favorites"); playlist.songs.add(new Song("Lalala")); playlist.songs.add(new Song("Lololo")); box.put(playlist);
// Kotlin val playlist = Playlist("My Favorites") playlist.songs.add(Song("Lalala")) playlist.songs.add(Song("Lololo")) box.put(playlist)

Why use ObjectBox for Java data management / Kotlin data management?

The NoSQL Java database is built for storing data locally, offline-first on resource-restricted devices like phones.

The database is optimized for high speed and low resource consumption on restricted devices, making it ideal for use on mobile devices. It uses minimal CPU, RAM, and power, which is not only great for users but also for the environment.

Being fully ACID-compliant, ObjectBox is faster than any alternative, outperforming SQLite and Realm across all CRUD (Create, Read, Update, Delete) operations. Check out our Performance Benchmarking App repository.

Our concise native-language API is easy to pick up and only requires a fraction of the code compared to SQLite. No more rows or columns, just plain objects (true POJOS) with built-in relations. It’s great for handling large data volumes and allows changing your model whenever needed.

All of this makes ObjectBox a smart choice for local data persistence with Java and Kotlin — it’s efficient, easy and sustainable.

🏁 High performance on restricted devices, like IoT gateways, micro controllers, ECUs etc.
💚 Resourceful with minimal CPU, power and Memory usage for maximum flexibility and sustainability
🔗 Relations: object links / relationships are built-in
💻 Multiplatform: Linux, Windows, Android, iOS, macOS, any POSIX system

🌱 Scalable: handling millions of objects resource-efficiently with ease
💐 Queries: filter data as needed, even across relations
🦮 Statically typed: compile time checks & optimizations
📃 Automatic schema migrations: no update scripts needed

And much more than just data persistence
🔄 ObjectBox Sync: keeps data in sync between devices and servers
🕒 ObjectBox TS: time series extension for time based data

For Android projects, add the ObjectBox Gradle plugin to your root build.gradle :

buildscript < ext.objectboxVersion = "3.6.0" repositories < mavenCentral() >dependencies < classpath("io.objectbox:objectbox-gradle-plugin:$objectboxVersion") > >

And in your app’s build.gradle apply the plugin:

// Using plugins syntax: plugins < id("io.objectbox") // Add after other plugins. > // Or using the old apply syntax: apply plugin: "io.objectbox" // Add after other plugins.

Create a data object class @Entity , for example «Playlist».

// Kotlin @Entity data class Playlist( . ) // Java @Entity public class Playlist

Now build the project to let ObjectBox generate the class MyObjectBox for you.

Prepare the BoxStore object once for your app, e.g. in onCreate in your Application class:

boxStore = MyObjectBox.builder().androidContext(this).build();

Then get a Box class for the Playlist entity class:

BoxPlaylist> box = boxStore.boxFor(Playlist.class);

The Box object gives you access to all major functions, like put , get , remove , and query .

For details please check the docs.

Your opinion matters to us! Please fill in this 2-minute Anonymous Feedback Form.

We believe, ObjectBox is super easy to use. We want to bring joy and delight to app developers with intuitive and fun to code with APIs. To do that, we want your feedback: what do you love? What’s amiss? Where do you struggle in everyday app development?

We’re looking forward to receiving your comments and requests:

  • Add GitHub issues
  • Upvote issues you find important by hitting the 👍 /+1 reaction button
  • Drop us a line via @ObjectBox_io or contact[at]objectbox.io
  • ⭐ us, if you like what you see

Keep in touch: For general news on ObjectBox, check our blog!

ObjectBox supports multiple platforms and languages. Besides JVM based languages like Java and Kotlin, ObjectBox also offers:

  • Swift Database: build fast mobile apps for iOS (and macOS)
  • Dart/Flutter Database: cross-platform for mobile and desktop apps
  • Go Database: great for data-driven tools and embedded server applications
  • C and C++ Database: native speed with zero copy access to FlatBuffer objects
Copyright 2017-2023 ObjectBox Ltd. All rights reserved. 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. 

Note that this license applies to the code in this repository only. See our website on details about all licenses for ObjectBox components.

About

Java and Android Database — fast and lightweight without any ORM

Источник

Room Database in android java

Room Database in android java

Hi everyone, in this post, we will discuss Room Database in android java.

Below are all steps covered in this blog

  • How to use the Room database
  • How to add Room Database in android studio
  • Insert,Update,Delete record
  • How to pass query in Database

What is a Room?

  • The Room strong library provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.
  • Normally Room databases are fast created and have good performance like reading, updating and deleting records. Room Database makes everything easy and fast
  • Room Database more detail open this link: https://developer.android.com/training/data-storage/room/

Components of Room Here room have main 3 components

Entity:

  • Instead of creating the SQLite table, we will create the Entity. An entity is nothing but a model class annotated with @Entity. The variables of this class are our columns, and the class is our table.

Database:

DAO:

  • Stands for Data Access Objects. It is an interface that defines all the operations that we need to perform in our database.

Demo App Create

Adding Dependencies

  • Add needed dependencies for the room database.
  • Android studio in this file add dependencies «build.gradle».
  • See the below image and add the latest version room database replace here «$room_version» add original version

First, we will create DAO class:

  • This DAO class-main work intermediary between the user and database. All performed operations are defined here.
  • Below create StudentDao class
@Dao public interface StudentDao < @Query("SELECT * FROM Student") ListgetAll(); @Insert void insert(Student student); @Update void updateTask(Student student); @Delete void deleteTask(Student student); >

Nowhere explain all components of StudentDao Class

  • Compulsory add class upper «@Dao» keyword
  • Three methods create insert, update, delete
  • Most important thing here is «@Query»

What is a Query?

  • Using query to get database existing record.
  • @Query(«SELECT * FROM Student») this query gets all student records.
  • But the user wants to get only the standard «5» student record and only get how to pass a query?
 @Query("SELECT * FROM STUDENT where std = :std") List dataCheck(String std);
  • Here «std» id table field name
  • Call this method «data check(String std)» pass a string in «5» and database in getting only 5 stander student record
  • So this concept use the query parameter

Second steps create student model class

@Entity(tableName = "student") public class Student implements Serializable < @PrimaryKey(autoGenerate = true) private int id; @ColumnInfo(name = "std") private int std; @ColumnInfo(name = "name") private String name; public int getId() < return id; >public void setId(int id) < this.id = id; >public int getStd() < return std; >public void setStd(int std) < this.std = std; >public String getName() < return name; >public void setName(String name) < this.name = name; >>
  • PrimaryKey: auto increment values
  • tableName : user wants to set the table name
  • ColumnInfo: give the table in columns name

Third steps Create Database class:

@Database(entities = , version = 1) public abstract class AppDatabase extends RoomDatabase

@Database(entities = , version = 1) public abstract class AppDatabase extends RoomDatabase

Fourth step inserts, update and delete records create separate method:

  • But implements upper all method in understanding asynctask
  • You, not knowing whats is asynctask first open this link and check it: https://developer.android.com/reference/android/os/AsyncTask
  • how we will create a common class method insert,update, delete
 public class InsertUpdateDeletRecord < private String DB_NAME = "db_task"; private Student Student; public studentRepository(Context context) < Student = Room.databaseBuilder(context, Student.class, DB_NAME).build(); >public void insertTask(String std,String name) < insertTask(std, name); >public void insertTask(String std,String name) < Student student = new Student(); student.setstd(std); student.setname(name); insertTask(student); >public void insertTask(final Student student) < new AsyncTask() < @Override protected Void doInBackground(Void. voids) < Student.daoAccess().insertTask(student); return null; >>.execute(); > public void updateTask(final Student student) < student.setModifiedAt(AppUtils.getCurrentDateTime()); new AsyncTask() < @Override protected Void doInBackground(Void. voids) < Student.daoAccess().updateTask(student); return null; >>.execute(); > public void deleteTask(final int id) < final LiveDatatask = getTask(id); if(task != null) < new AsyncTask() < @Override protected Void doInBackground(Void. voids) < Student.daoAccess().deleteTask(task.getValue()); return null; >>.execute(); > > public void deleteTask(final student student) < new AsyncTask() < @Override protected Void doInBackground(Void. voids) < Student.daoAccess().deleteTask(student); return null; >>.execute(); > >

Sample Implementation of basic CRUD operations using ROOM

Insert:

 InsertUpdateDeletRecord insertUpdateDeletRecord = new InsertUpdateDeletRecord(getApplicationContext( )); String std = "5"; String name = Android"; insertUpdateDeletRecord.insertTask(title, description);

Update:

 InsertUpdateDeletRecord insertUpdateDeletRecord = new InsertUpdateDeletRecord(getApplicationContext( )); Student student = insertUpdateDeletRecord.getTask(2); student.setName("Java"); student.setStd("6"); insertUpdateDeletRecord.updateTask(student);

Update:

 InsertUpdateDeletRecord insertUpdateDeletRecord = new InsertUpdateDeletRecord(getApplicationContext()); insertUpdateDeletRecord.deleteTask(3);

Источник

Оцените статью