|
|
|
*Entity-Definition*
|
|
|
|
```kotlin
|
|
|
|
@Entity
|
|
|
|
data class Message(
|
|
|
|
@Id var id: Long = 0L,
|
|
|
|
val title: String,
|
|
|
|
val text: String
|
|
|
|
)
|
|
|
|
```
|
|
|
|
|
|
|
|
*Speicher*
|
|
|
|
|
|
|
|
```kotlin
|
|
|
|
val store = MyObjectBox.builder()
|
|
|
|
.name("objectbox-messages-db")
|
|
|
|
.build()
|
|
|
|
val messages = store.boxFor<Message>()
|
|
|
|
```
|
|
|
|
|
|
|
|
*Create*
|
|
|
|
|
|
|
|
```kotlin
|
|
|
|
fun newMessage(messages: Box<Message>) {
|
|
|
|
print("Title: ")
|
|
|
|
val title = readLine()
|
|
|
|
println("Text: ")
|
|
|
|
val text = readLine()
|
|
|
|
|
|
|
|
if (!title.isNullOrEmpty() && !text.isNullOrEmpty()) {
|
|
|
|
messages.put(Message(title = title, text = text))
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
*Delete*
|
|
|
|
|
|
|
|
```kotlin
|
|
|
|
fun deleteMessage(messages: Box<Message>) {
|
|
|
|
displayMessages(messages)
|
|
|
|
|
|
|
|
println(print("Id to delete: "))
|
|
|
|
val id = readLine()?.toLongOrNull()
|
|
|
|
if (id != null && messages.get(id) != null) {
|
|
|
|
messages.remove(id)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
*List*
|
|
|
|
|
|
|
|
```kotlin
|
|
|
|
fun displayMessages(messages: Box<Message>) {
|
|
|
|
messages.all.forEach {
|
|
|
|
println(it)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
*Search*
|
|
|
|
|
|
|
|
```kotlin
|
|
|
|
fun searchMessages(messages: Box<Message>) {
|
|
|
|
print("Suche eingeben: ")
|
|
|
|
val search = readLine()
|
|
|
|
|
|
|
|
if (!search.isNullOrEmpty())
|
|
|
|
messages.query()
|
|
|
|
.contains(Message_.title, search).or().contains(Message_.text, search)
|
|
|
|
.build().find().forEach { msg ->
|
|
|
|
println(msg)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
*Beispiel-Nutzung*
|
|
|
|
|
|
|
|
```kotlin
|
|
|
|
fun main() {
|
|
|
|
while (true) {
|
|
|
|
println("Menü:")
|
|
|
|
println("(n)eue Nachricht")
|
|
|
|
println("Nachricht (l)öschen")
|
|
|
|
println("Nachrichten (a)nzeigen")
|
|
|
|
println("Nachrichten (s)uchen")
|
|
|
|
println("(b)eenden")
|
|
|
|
val menuSelection = readLine()
|
|
|
|
|
|
|
|
when (menuSelection) {
|
|
|
|
"n" -> newMessage(messages)
|
|
|
|
"l" -> deleteMessage(messages)
|
|
|
|
"a" -> displayMessages(messages)
|
|
|
|
"s" -> searchMessages(messages)
|
|
|
|
"b" -> break
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
|
|
Aufgabe
|
|
|
|
-------
|
|
|
|
|
|
|
|
Speichere die Historie in einer objectbox |