A Sqlite ORM library for Kotlin, Java & Android.
Status : Active
Version : v1.7
Currently implemented:
- Insert
- Retrieve
- Update
- Delete
- Drop
In your build file add
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
And
dependencies {
compile 'ninja.sakib:PultusORM:v1.7'
}
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
And
<dependency>
<groupId>ninja.sakib</groupId>
<artifactId>PultusORM</artifactId>
<version>v1.7</version>
</dependency>
In case you need jar download is available here .
More option can be found here.
In 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 (Kotlin),
val appPath: String = getApplicationContext().getFilesDir().getAbsolutePath() // Output : /data/data/application_package_name/files/
val pultusORM: PultusORM = PultusORM("test.db", appPath)
In Java,
PultusORM orm = new PultusORM("test.db", "/Users/s4kib/")
PultusORM orm = new PultusORM("test.db", ) // DB will take place in user.home directory
In Android (Java),
String appPath = getApplicationContext().getFilesDir().getAbsolutePath() // Output : /data/data/application_package_name/files/
val orm = new PultusORM("test.db", appPath)
class Student {
@PrimaryKey
@AutoIncrement
var studentId: Int = 0
var name: String? = null
var department: String? = null
var cgpa: Double = 0.0
var dateOfBirth: java.util.Date? = null
@Ignore
var section: String? = null
}
val student: Student = Student()
student.name = "Sakib Sayem"
student.department = "CSE"
student.cgpa = 2.3
student.dateOfBirth = Date()
pultusORM.save(student)
pultusORM.close()
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(student.dateOfBirth)
println()
}
1
Sakib Sayem
CSE
2.3
Wed Sep 27 23:21:52 BDT 2017
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}")
}
// 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)
pultusORM.delete(Student())
pultusORM.drop(Student())
Check out more examples & API docs here
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
- Date (java.util)
Autoincrement annotated fields values will be skipped as that will be handled by sqlite.
Copyright © Sakib Sami
Distributed under MIT license
If you want to support this project Patreon Me!