PultusORM s4kibs4mi by pultusorm

A sqlite ORM library for kotlin, Android & Java.

Status : Active
Version : v1.5

Features

Currently implemented:

  • Insert
  • Retrieve
  • Update
  • Delete
  • Drop

Usages

In your build file add

Gradle
allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}

And

dependencies {
    compile 'ninja.sakib:PultusORM:v1.5'
}
Maven
<repositories>
    <repository>
        <id>jitpack.io</id>
        <url>https://jitpack.io</url>
	</repository>
</repositories>

And

<dependency>
    <groupId>ninja.sakib</groupId>
    <artifactId>PultusORM</artifactId>
    <version>v1.5</version>
</dependency>

In case you need jar download is available here .

If you want to use this library in a java project please add kotlin runtime library too.

More option can be found here.

Examples

Open database connection
In Java/Kotlin,
val pultusORM: PultusORM = PultusORM("test.db", "/Users/s4kib/")
val pultusORM: PultusORM = PultusORM("test.db")    // DB will take place in user.home directory

In Android,
val appPath = getApplicationContext().getFilesDir().getAbsolutePath()  // Output : /data/data/application_package_name/files/
val pultusORM: PultusORM = PultusORM("test.db", appPath)
Insert value
class Student {
    @PrimaryKey
    @AutoIncrement
    var studentId: Int = 0
    var name: String? = null
    var department: String? = null
    var cgpa: Double = 0.0
    @Ignore
    var section: String? = null
}

val student: Student = Student()
student.name = "Sakib Sayem"
student.department = "CSE"
student.cgpa = 2.3
pultusORM.save(student)
pultusORM.close()
Retrieve Values
val students = pultusORM.find(Student())
for (it in students) {
    val student = it as Student
    println(student.studentId)
    println(student.name)
    println(student.department)
    println(student.cgpa)
    println()
}
Result
1
Sakib Sayem
CSE
2.3
Retrieve values based on condition
val condition: PultusORMCondition = PultusORMCondition.Builder()
            .eq("name", "sakib")
            .and()
            .greaterEq("cgpa", 18)
            .or()
            .startsWith("name", "sami")
            .sort("name", PultusORMQuery.Sort.DESCENDING)
            .sort("department", PultusORMQuery.Sort.ASCENDING)
            .build()

val students = pultusORM.find(Student(), condition)
for (it in students) {
    val student = it as Student
    println("${student.studentId}")
    println("${student.name}")
}
Update value
// values will be updated based on this condition
val condition: PultusORMCondition = PultusORMCondition.Builder()
            .eq("name", "Sakib")
            .build()

val updater: PultusORMUpdater = PultusORMUpdater.Builder()
            .set("name", "Sayan Nur")
            .condition(condition)   // condition is optional
            .build()

pultusORM.update(Student(), updater)
Delete values
pultusORM.delete(Student())
Drop Table
pultusORM.drop(Student())

Check out more examples & API docs here


Note

Tables will be created on fly if not exists using class name and columns based on class fields.
Currently supported types:

  • String
  • Int
  • Long
  • Float
  • Double
  • Boolean

Autoincrement annotated fields values will be skipped as that will be handled by sqlite.

License

Copyright © Sakib Sami

Distributed under MIT license

Donation

If you want to support this project Donate

compile "ninja.sakib:PultusORM:v1.5"

Related Libraries

kuery

Strongly typed SQL in Kotlin

Last updated 3 mins ago

sqldelight

Generates Java models from CREATE TABLE statements.

Last updated 3 mins ago

kotliquery

A handy Database access library in Kotlin

Last updated 3 mins ago

pultusorm

PultusORM is a sqlite ORM library for kotlin / Java / Android.

Last updated 3 mins ago

requery

requery - modern SQL based query & persistence for Java / Kotlin / Android

Last updated 3 mins ago