greenDAO is a light & fast ORM solution for Android that maps objects to SQLite databases.

Related tags

O/R Mapping greenDAO
Overview

Check out ObjectBox

Check out our new mobile database ObjectBox (GitHub repo).

ObjectBox is a superfast object-oriented database with strong relation support. ObjectBox is embedded into your Android, Linux, macOS, or Windows app.

greenDAO

greenDAO is a light & fast ORM for Android that maps objects to SQLite databases. Being highly optimized for Android, greenDAO offers great performance and consumes minimal memory.

Home page, documentation, and support links: https://greenrobot.org/greendao/

Build Status Follow greenrobot on Twitter

Features

greenDAO's unique set of features:

  • Rock solid: greenDAO has been around since 2011 and is used by countless famous apps
  • Super simple: concise and straight-forward API, in V3 with annotations
  • Small: The library is <150K and it's just plain Java jar (no CPU dependent native parts)
  • Fast: Probably the fastest ORM for Android, driven by intelligent code generation
  • Safe and expressive query API: QueryBuilder uses property constants to avoid typos
  • Powerful joins: query across entities and even chain joins for complex relations
  • Flexible property types: use custom classes or enums to represent data in your entity
  • Encryption: supports SQLCipher encrypted databases

Add greenDAO to your project

greenDAO is available on Maven Central. Please ensure that you are using the latest versions of the greendao and greendao-gradle-plugin artifact.

Add the following Gradle configuration to your Android project. In your root build.gradle file:

buildscript {
    repositories {
        jcenter()
        mavenCentral() // add repository
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.3'
        classpath 'org.greenrobot:greendao-gradle-plugin:3.3.0' // add plugin
    }
}

In your app modules app/build.gradle file:

apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' // apply plugin
 
dependencies {
    implementation 'org.greenrobot:greendao:3.3.0' // add library
}

Note that this hooks up the greenDAO Gradle plugin to your build process. When you build your project, it generates classes like DaoMaster, DaoSession and DAOs.

Continue at the Getting Started page.

R8, ProGuard

If your project uses R8 or ProGuard add the following rules:

-keepclassmembers class * extends org.greenrobot.greendao.AbstractDao {
public static java.lang.String TABLENAME;
}
-keep class **$Properties { *; }

# If you DO use SQLCipher:
-keep class org.greenrobot.greendao.database.SqlCipherEncryptedHelper { *; }

# If you do NOT use SQLCipher:
-dontwarn net.sqlcipher.database.**
# If you do NOT use RxJava:
-dontwarn rx.**

Homepage, Documentation, Links

For more details on greenDAO please check greenDAO's website. Here are some direct links you may find useful:

Features

Getting Started

Documentation

Changelog

Technical FAQ

Non-Technical FAQ

Migrating to greenDAO 3

More Open Source by greenrobot

ObjectBox is a new superfast object-oriented database for mobile.

EventBus is a central publish/subscribe bus for Android with optional delivery threads, priorities, and sticky events. A great tool to decouple components (e.g. Activities, Fragments, logic components) from each other.

Essentials is a set of utility classes and hash functions for Android & Java projects.

Comments
  • Avoid EncryptedHelper ART warning due to missing SQLCipher super class

    Avoid EncryptedHelper ART warning due to missing SQLCipher super class

    Today I've updated to version 3.1.1

    When I launch the app, I make a request and pass the data to db. Since the new update I watch this warning, is it normal? Excuse for my english

    
    Rejecting re-init on previously-failed class java.lang.Class org.greenrobot.greendao.database.DatabaseOpenHelper$EncryptedHelper
    Rejecting re-init on previously-failed class java.lang.Class org.greenrobot.greendao.database.DatabaseOpenHelper$EncryptedHelper
    Rejecting re-init on previously-failed class java.lang.Class org.greenrobot.greendao.database.DatabaseOpenHelper$EncryptedHelper
    Rejecting re-init on previously-failed class java.lang.Class org.greenrobot.greendao.database.DatabaseOpenHelper$EncryptedHelper
    Rejecting re-init on previously-failed class java.lang.Class org.greenrobot.greendao.database.DatabaseOpenHelper$EncryptedHelper
    Rejecting re-init on previously-failed class java.lang.Class org.greenrobot.greendao.database.DatabaseOpenHelper$EncryptedHelper
    
    Bug Confirmed 
    opened by brian2694 48
  • Generated files like DaoMaster can not be referenced

    Generated files like DaoMaster can not be referenced

    I cannot import greenDAO 3 in my code for some reason. I have included it in my build.gradle and used gradle sync, but still it doesn't work.

    I used the code from the example project.

    import android.app.Application;
    
    import org.greenrobot.greendao.database.Database;
    
    public class App extends Application {
        /** A flag to show how easily you can switch from standard SQLite to the encrypted SQLCipher. */
        public static final boolean ENCRYPTED = true;
    
        private DaoSession daoSession;
    
        @Override
        public void onCreate() {
            super.onCreate();
    
            DevOpenHelper helper = new DevOpenHelper(this, ENCRYPTED ? "notes-db-encrypted" : "notes-db");
            Database db = ENCRYPTED ? helper.getEncryptedWritableDb("super-secret") : helper.getWritableDb();
            daoSession = new DaoMaster(db).newSession();
        }
    
        public DaoSession getDaoSession() {
            return daoSession;
        }
    }
    
    

    build.gradle file

    buildscript {
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath 'org.greenrobot:greendao-gradle-plugin:3.0.0'
        }
    }
    
    apply plugin: 'com.android.application'
    apply plugin: 'org.greenrobot.greendao'
    
    
    android {
        compileSdkVersion 23
        buildToolsVersion "23.0.3"
    
        defaultConfig {
            minSdkVersion 15
            targetSdkVersion 23
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
        sourceSets {
            main {
                java.srcDirs = ['src/main/java','src-gem']
            }
        }
    }
    
    
    
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:23.3.0'
        compile 'com.android.support:design:23.3.0'
        compile 'com.android.volley:volley:1.0.0'
        compile 'com.google.code.gson:gson:2.7'
        compile 'org.greenrobot:greendao:3.0.1'
    
    }
    
    uploadArchives.enabled = false
    
    
    Bug Confirmed 
    opened by bongtavas 48
  • Failure on init Dao config on Samsung Devices with Android 5.0

    Failure on init Dao config on Samsung Devices with Android 5.0

    Hi,

    i see a failure in the wild on Samsung devices with Android version 5.0.

    java.lang.RuntimeException: Unable to create application de.komoot.android.KomootApplication: de.greenrobot.dao.DaoException: Could not init DAOConfig
           at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5118)
           at android.app.ActivityThread.access$1600(ActivityThread.java:177)
           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1509)
           at android.os.Handler.dispatchMessage(Handler.java:102)
           at android.os.Looper.loop(Looper.java:145)
           at android.app.ActivityThread.main(ActivityThread.java:5944)
           at java.lang.reflect.Method.invoke(Method.java)
           at java.lang.reflect.Method.invoke(Method.java:372)
           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)
    Caused by: de.greenrobot.dao.DaoException: Could not init DAOConfig
           at de.greenrobot.dao.internal.DaoConfig.(SourceFile:94)
           at de.greenrobot.dao.AbstractDaoMaster.registerDaoClass(SourceFile:44)
           at de.komoot.android.db.DaoMaster.(SourceFile:74)
           at de.komoot.android.KomootApplication.onCreate(SourceFile:202)
           at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1020)
           at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5115)
           at android.app.ActivityThread.access$1600(ActivityThread.java:177)
           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1509)
           at android.os.Handler.dispatchMessage(Handler.java:102)
           at android.os.Looper.loop(Looper.java:145)
           at android.app.ActivityThread.main(ActivityThread.java:5944)
           at java.lang.reflect.Method.invoke(Method.java)
           at java.lang.reflect.Method.invoke(Method.java:372)
           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)
    Caused by: java.lang.NoSuchFieldException: TABLENAME
           at java.lang.Class.getField(Class.java:1104)
           at de.greenrobot.dao.internal.DaoConfig.(SourceFile:56)
           at de.greenrobot.dao.AbstractDaoMaster.registerDaoClass(SourceFile:44)
           at de.komoot.android.db.DaoMaster.(SourceFile:74)
           at de.komoot.android.KomootApplication.onCreate(SourceFile:202)
           at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1020)
           at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5115)
           at android.app.ActivityThread.access$1600(ActivityThread.java:177)
           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1509)
           at android.os.Handler.dispatchMessage(Handler.java:102)
           at android.os.Looper.loop(Looper.java:145)
           at android.app.ActivityThread.main(ActivityThread.java:5944)
           at java.lang.reflect.Method.invoke(Method.java)
           at java.lang.reflect.Method.invoke(Method.java:372)
           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1388)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1183)
    

    See http://crashes.to/s/3f8a267ec62

    I don't have any samsung device with Android 5.0(.1) so i cant test it. But as you can see in my crashlytics report it happens quite often.

    Thx for the great greenDAO Best

    Arne

    Stack Overflow 
    opened by ArneKoeckeritz 45
  • Greendao not compatible with okBuck

    Greendao not compatible with okBuck

    I am trying to migrate my app to use okBuck and I hit a wall. The greenDAO gradle plugin appears not to be run by okBuck.

    It would be nice if you fix https://github.com/greenrobot/greenDAO/issues/412 so we can help out.

    opened by Macarse 34
  • build failed after update Android Studio

    build failed after update Android Studio

    error message : org.eclipse.jdt.internal.compiler.impl.CompilerOptions.versionToJdkLevel(Ljava/lang/Object;)J Android Studio Version : 2.3.0 Gradle Version : 3.3 Gradle Plugin Version : 2.3.0 GreenDAO Version : 3.2.0

    opened by lazytes 32
  • NoSuchMethodError: CompilerOptions.versionToJdkLevel with Android Gradle Plugin 2.3.0-alpha1

    NoSuchMethodError: CompilerOptions.versionToJdkLevel with Android Gradle Plugin 2.3.0-alpha1

    Hello. I have a problem with migration to greendao3. I follow guide http://greenrobot.org/greendao/documentation/updating-to-greendao-3-and-annotations/

    New classes generated successfully. Gradle greendao plugin added and applied. But while compiling, i get error:

    Caused by: java.lang.NoSuchMethodError: org.eclipse.jdt.internal.compiler.impl.CompilerOptions.versionToJdkLevel(Ljava/lang/Object;)J
            at org.eclipse.jdt.core.dom.ASTConverter.<init>(ASTConverter.java:91)
            at org.eclipse.jdt.core.dom.CompilationUnitResolver.convert(CompilationUnitResolver.java:285)
            at org.eclipse.jdt.core.dom.ASTParser.internalCreateAST(ASTParser.java:1216)
            at org.eclipse.jdt.core.dom.ASTParser.createAST(ASTParser.java:812)
            at org.greenrobot.greendao.codemodifier.EntityClassParser.parse(EntityClassParser.kt:25)
    

    I tried clean project, remove .gradle dir, nothing helps. Full stacktrace: http://pastebin.com/shPg8Wi7

    Android studio 2.3. Gradle: com.android.tools.build:gradle:2.3.0-alpha1. Greendao 3.2.0.

    What can be wrong? Thanks :)

    opened by Quarx2k 25
  • Rx support

    Rx support

    While pragmatic programmers often do database operations on the main thread, some prefer strictly asynchronous operations. While greenDAO offers the latter, we should also have direct Rx support in the Android API.

    Let's brainstorm on this:

    • Query could return an observable
    • Functions like loadAll could also be Rxified. Naming? loadAllRx? -> RxDao class
    • For update/delete/insert operations we could provide an observable transaction
    • Dependency should be compile-only, so Rx is completely optional

    Future work (post V3.1):

    • Notifications and updatable observables
    Enhancement 
    opened by greenrobot 25
  • Use new Android Gradle Plugin 3.3+ APIs: WARNING: API 'variant.getJavaCompiler()' is obsolete and has been replaced with 'variant.getJavaCompileProvider()'

    Use new Android Gradle Plugin 3.3+ APIs: WARNING: API 'variant.getJavaCompiler()' is obsolete and has been replaced with 'variant.getJavaCompileProvider()'

    Edit: see workaround below.


    when i compile the version with 'org.greenrobot:greendao-gradle-plugin:3.2.2' ,i get an error : WARNING: API 'variant.getJavaCompiler()' is obsolete and has been replaced with 'variant.getJavaCompileProvider()'. It will be removed at the end of 2019. For more information, see https://d.android.com/r/tools/task-configuration-avoidance. To determine what is calling variant.getJavaCompiler(), use -Pandroid.debug.obsoleteApi=true on the command line to display a stack trace. Affected Modules: app

    and i try execute a command,gradlew -Pandroid.debug.obsoleteApi=true, i get : `>gradlew -Pandroid.debug.obsoleteApi=true

    Configure project :app WARNING: API 'variant.getJavaCompiler()' is obsolete and has been replaced with 'variant.getJavaCompileProvider()'. It will be removed at the end of 2019. For more information, see https://d.android.com/r/tools/task-configuration-avoidance. REASON: It is currently called from the following trace: java.lang.Thread.getStackTrace(Thread.java:1552) com.android.build.gradle.internal.errors.DeprecationReporterImpl.reportDeprecatedApi(DeprecationReporterImpl.kt:79) com.android.build.gradle.internal.api.BaseVariantImpl.getJavaCompiler(BaseVariantImpl.java:447) com.android.build.gradle.internal.api.ApplicationVariantImpl_Decorated.getJavaCompiler(null:-1) org.greenrobot.greendao.gradle.AndroidPluginSourceProvider.addGeneratorTask(SourceProvider.kt:62) org.greenrobot.greendao.gradle.AndroidPluginSourceProvider$addGeneratorTask$1.execute(SourceProvider.kt:46) org.greenrobot.greendao.gradle.AndroidPluginSourceProvider$addGeneratorTask$1.execute(SourceProvider.kt:27) org.gradle.api.internal.DefaultDomainObjectCollection.all(DefaultDomainObjectCollection.java:158) org.greenrobot.greendao.gradle.AndroidPluginSourceProvider.addGeneratorTask(SourceProvider.kt:45) org.greenrobot.greendao.gradle.Greendao3GradlePlugin$apply$1.execute(Greendao3GradlePlugin.kt:50) org.greenrobot.greendao.gradle.Greendao3GradlePlugin$apply$1.execute(Greendao3GradlePlugin.kt:14) org.gradle.configuration.internal.DefaultListenerBuildOperationDecorator$BuildOperationEmittingAction$1$1.run(DefaultListenerBuildOperationDecorator.java:155) ... ... java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) java.lang.Thread.run(Thread.java:745)

    WARNING: Debugging obsolete API calls can take time during configuration. It's recommended to not keep it on at all times.`

    Although this problem will break out in 2020, I hope to solve it in the next version as soon as possible.

    Bug Confirmed 
    opened by sjindong 23
  • SQLiteDatabaseLockedException: database is locked (code 5)

    SQLiteDatabaseLockedException: database is locked (code 5)

    Some of my users are facing SQLiteDatabaseLockedException.

    I am using this code in my application class onCreate method to setup database:

    private void setupDatabase() {
            DbUpdateHelper helper = new DbUpdateHelper(this, "app-name-db", null);
            SQLiteDatabase db = helper.getWritableDatabase();
            DaoMaster daoMaster = new DaoMaster(db);
            daoSession = daoMaster.newSession();
        }
    

    This is the only place where I am accessing the db using helper.getWritableDatabase().

    Everywhere else I am using the daoSession object to access db.

    Stacktrace:

    java.lang.RuntimeException: Unable to create application o.ᴛ: android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5): , while compiling: PRAGMA journal_mode
           at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4608)
           at android.app.ActivityThread.access$1500(ActivityThread.java:148)
           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1353)
           at android.os.Handler.dispatchMessage(Handler.java:102)
           at android.os.Looper.loop(Looper.java:135)
           at android.app.ActivityThread.main(ActivityThread.java:5312)
           at java.lang.reflect.Method.invoke(Method.java)
           at java.lang.reflect.Method.invoke(Method.java:372)
           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)
    Caused by: android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5): , while compiling: PRAGMA journal_mode
           at android.database.sqlite.SQLiteConnection.nativePrepareStatement(SQLiteConnection.java)
           at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
           at android.database.sqlite.SQLiteConnection.executeForString(SQLiteConnection.java:634)
           at android.database.sqlite.SQLiteConnection.setJournalMode(SQLiteConnection.java:320)
           at android.database.sqlite.SQLiteConnection.setWalModeFromConfiguration(SQLiteConnection.java:294)
           at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:215)
           at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
           at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
           at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
           at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
           at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:806)
           at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:791)
           at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:694)
           at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:1276)
           at android.content.ContextWrapper.openOrCreateDatabase(ContextWrapper.java:267)
           at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:223)
           at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:163)
           at o.ᴛ.onCreate(SourceFile:1032)
           at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1034)
           at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4605)
           at android.app.ActivityThread.access$1500(ActivityThread.java:148)
           at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1353)
           at android.os.Handler.dispatchMessage(Handler.java:102)
           at android.os.Looper.loop(Looper.java:135)
           at android.app.ActivityThread.main(ActivityThread.java:5312)
           at java.lang.reflect.Method.invoke(Method.java)
           at java.lang.reflect.Method.invoke(Method.java:372)
           at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
           at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:696)
    
    Stack Overflow 
    opened by KushGoyal 22
  • Gradle plugin does not support Gradle 6.0

    Gradle plugin does not support Gradle 6.0

    Caused by: java.lang.NoSuchMethodError: org.gradle.api.tasks.TaskInputs.property(Ljava/lang/String;Ljava/lang/Object;)Lorg/gradle/api/tasks/TaskInputs;
            at org.greenrobot.greendao.gradle.Greendao3GradlePlugin.createGreendaoTask(Greendao3GradlePlugin.kt:60)
            at org.greenrobot.greendao.gradle.Greendao3GradlePlugin.access$createGreendaoTask(Greendao3GradlePlugin.kt:14)
            at org.greenrobot.greendao.gradle.Greendao3GradlePlugin$apply$1.execute(Greendao3GradlePlugin.kt:47)
            at org.greenrobot.greendao.gradle.Greendao3GradlePlugin$apply$1.execute(Greendao3GradlePlugin.kt:14)
            at org.gradle.configuration.internal.DefaultListenerBuildOperationDecorator$BuildOperationEmittingAction$1.lambda$run$0(DefaultListenerBuildOperationDecorator.java:152)
            at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.reapply(DefaultUserCodeApplicationContext.java:60)
            at org.gradle.configuration.internal.DefaultListenerBuildOperationDecorator$BuildOperationEmittingAction$1.run(DefaultListenerBuildOperationDecorator.java:152)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
    
    
    Bug 
    opened by hjywyj 21
  • Crash on checkThread()

    Crash on checkThread()

    After some investigation of a crash we are seeing in our app, we would like to share some information.

    The stacktrace is the following:

    de.greenrobot.dao.DaoException: Method may be called only in owner thread, use forCurrentThread to get an instance for this thread at de.greenrobot.dao.query.AbstractQuery.checkThread(SourceFile:80) at de.greenrobot.dao.query.AbstractQuery.setParameter(SourceFile:70) at de.greenrobot.dao.query.AbstractQueryWithLimit.setParameter(SourceFile:48) at de.greenrobot.dao.query.Query.setParameter(SourceFile:30) setParameter setParameter

    This is happening mostly on RIM devices. AbstractQueryData's forCurrentThread() is using Process.myTid() and this method might return 0. There was an attempt to fix this problem in https://github.com/greenrobot/greenDAO/issues/171 and the ticket was closed saying it was fixed with https://github.com/greenrobot/greenDAO/commit/013af9c4c4ee76af304b3b35f50588a7e6d68f63

    While that fix might have worked for Robolectric, the issue mentioned by @dcowley is real and it is still there.

    Can this be revised?

    More info required 
    opened by Macarse 20
  • kotlin version problem

    kotlin version problem

    Kotlin does not support 1.7.0. Error during compilation.

    greendao com.sun.tools.javac.processing.AnnotationProcessingError: java.lang.IllegalStateException: Unsupported metadata version. Check that your Kotlin version is >= 1.0

    opened by batuhanoymak 1
  • Read this first! Check out our new database

    Read this first! Check out our new database

    Check out our new mobile database ObjectBox (GitHub repo).

    This is where we will put all of our effort going forward.

    ObjectBox is a superfast object-oriented database with strong relation support. ObjectBox is embedded into your Android, Linux, macOS, or Windows app.

    If you are looking for an object-mapping library based on SQLite you might want to check out the Android Jetpack Room library.

    opened by greenrobot-team 0
  • incompatible gradle-6.5-bin.zip

    incompatible gradle-6.5-bin.zip

    Unable to find method 'org.gradle.api.tasks.TaskInputs.property(Ljava/lang/String;Ljava/lang/Object;)Lorg/gradle/api/tasks/TaskInputs;' org.gradle.api.tasks.TaskInputs.property(Ljava/lang/String;Ljava/lang/Object;)Lorg/gradle/api/tasks/TaskInputs;

    Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)

    Re-download dependencies and sync project (requires network) The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.

    Stop Gradle build processes (requires restart) Your project may be using a third-party plugin which is not compatible with the other plugins in the project or the version of Gradle requested by the project.

    In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.

    opened by mengzhaoyi0216 1
  • could you tell me why

    could you tell me why "DaoMaster onCreate" method "createAllTables(db, false);" "ifNotExists" this params default value is false

    it report a error when monkey test , "table "HISTORY_RECORDS" already exists" so i want to change this value to true, but i do not know what will happened

    opened by Mr-Luowan 0
  • Improve GRADLE build Performance

    Improve GRADLE build Performance

    Parallel builds. This project contains multiple modules. Parallel builds can improve the build speed by executing tasks in parallel. We can enable this feature by setting org.gradle.parallel=true.

    Configuration on demand. Configuration on demand tells Gradle to configure modules that only are relevant to the requested tasks instead of configuring all of them. We can enable this feature by setting org.gradle.configureondemand=true.

    gradle caching. Shared caches can reduce the number of tasks you need to execute by reusing outputs already generated elsewhere. This can significantly decrease build times. We can enable this feature by setting org.gradle.caching=true.

    ===================== If there are any inappropriate modifications in this PR, please give me a reply and I will change them.

    opened by i-Taozi 0
Releases(V3.3.0)
Owner
Markus Junginger
CTO and co-founder at objectbox.io, creator of EventBus and greenDAO.
Markus Junginger
lightweight and minimalist ORM for Java/Android. works with SQLite & MySQL. (not actively maintained)

Description ORMAN is an minimalistic and lightweight ORM framework for Java which can handle your common database usage without writing SQL and strugg

Ahmet Alp Balkan 246 Nov 20, 2022
AndroidQuery is an Android ORM for SQLite and ContentProvider which focuses on easy of use and performances thanks to annotation processing and code generation

WARNING: now that Room is out, I no longer maintain that library. If you need a library to easy access to default android ContentProvider, I would may

Frédéric Julian 19 Dec 11, 2021
lightweight and minimalist ORM for Java/Android. works with SQLite & MySQL. (not actively maintained)

Description ORMAN is an minimalistic and lightweight ORM framework for Java which can handle your common database usage without writing SQL and strugg

Ahmet Alp Balkan 246 Nov 20, 2022
A blazing fast, powerful, and very simple ORM android database library that writes database code for you.

README DBFlow is fast, efficient, and feature-rich Kotlin database library built on SQLite for Android. DBFlow utilizes annotation processing to gener

Andrew Grosner 4.9k Dec 30, 2022
A blazing fast, powerful, and very simple ORM android database library that writes database code for you.

README DBFlow is fast, efficient, and feature-rich Kotlin database library built on SQLite for Android. DBFlow utilizes annotation processing to gener

Andrew Grosner 4.9k Dec 30, 2022
Sprinkles is a boiler-plate-reduction-library for dealing with databases in android applications

Sprinkles Sprinkles is a boiler-plate-reduction-library for dealing with databases in android applications. Some would call it a kind of ORM but I don

Emil Sjölander 781 Nov 28, 2022
Kotlin-Exposed-SQL - Example of using Exposed with Kotlin for the consumption of relational SQL Databases

Kotlin Exposed SQL Sencillo ejemplo sobre el uso y abuso de Exposed ORM de Jetbr

José Luis González Sánchez 3 Jun 14, 2022
Memory objects for Kotlin/JVM and Java

Memoria Why should an object care about where to store their bytes? Examples Basics RAM can used as a memory storage: val ram: BytesMemory = RamMemory

null 6 Jul 29, 2022
Android ORM

Shillelagh Shillelagh is an sqlite library. It was built to make life easier. The entire library was built around simplicity when using sqlite in Andr

Andrew Reitz 49 Sep 11, 2020
Compile-time active record ORM for Android

Ollie Compile-time active record ORM for Android. Multiple mapping methods. SQLiteDatabase-like interface (QueryUtils.java). Lightweight query builder

Michael Pardo 423 Dec 30, 2022
ORMDroid is a simple ORM persistence framework for your Android applications.

ORMDroid is a simple ORM persistence framework for your Android applications, providing an easy to use, almost-zero-config way to handle model persist

Ross Bamford 87 Nov 10, 2022
An ORM for Android with type-safety and painless smart migrations

Android Orma Orma is a ORM (Object-Relation Mapper) for Android SQLiteDatabase. Because it generates helper classes at compile time with annotation pr

The Maskarade project 440 Nov 25, 2022
Performance comparison of Android ORM Frameworks

Performance comparison of Android ORM Frameworks At the moment there are a lot of ORM-libraries for the Android OS. We reviewed the most popular ones

Alexey Zatsepin 328 Dec 21, 2022
a 3d database ORM experiment. (used in two commercial projects)

Android-TriOrm a 3d database ORM experiment for Android. (used in two commercial projects). based around small tables concept and JVM Serialization. H

Tomer Shalev 19 Nov 24, 2021
JAKO: Just Another Kotlin Orm (PostgreSQL)

JAKO: Just Another Kotlin Orm (PostgreSQL) JAKO is a simple, minimal, no-dependency library to build and execute postgresql statements using a fluent

Alessio 6 May 27, 2022
Active record style SQLite persistence for Android

ActiveAndroid ActiveAndroid is an active record style ORM (object relational mapper). What does that mean exactly? Well, ActiveAndroid allows you to s

Michael Pardo 4.7k Dec 29, 2022
An Android library that makes developers use SQLite database extremely easy.

LitePal for Android 中文文档 LitePal is an open source Android library that allows developers to use SQLite database extremely easy. You can finish most o

Lin Guo 7.9k Dec 31, 2022
Active record style SQLite persistence for Android

ActiveAndroid ActiveAndroid is an active record style ORM (object relational mapper). What does that mean exactly? Well, ActiveAndroid allows you to s

Michael Pardo 4.7k Dec 29, 2022
Android SQLite API based on SQLCipher

Download Source and Binaries The latest AAR binary package information can be here, the source can be found here. Compatibility SQLCipher for Android

SQLCipher 2.6k Dec 31, 2022