Введение в базу данных в Kotlin
База данных на диске часто хранится как один файл SQLite. Внутри лежат таблицы - именованные наборы колонок с одним типом строк. Каждая строка - запись, а отдельная колонка в записи - поле.
Программа на Kotlin/JVM обращается к файлу через JDBC:
строка "jdbc:sqlite:..." указывает путь к
базе, а команды на английском языке задают структуру
и данные. Такой текст называют SQL-запросом.
Типичная цепочка для новой таблицы: создать схему,
добавить строку и прочитать содержимое. Ниже файл
glossary.db получает таблицу terms
и одну запись:
import java.sql.DriverManager
fun main() {
DriverManager.getConnection("jdbc:sqlite:glossary.db")
.use { connection ->
connection.createStatement().use { statement ->
statement.execute(
"""
CREATE TABLE IF NOT EXISTS terms (
id INTEGER PRIMARY KEY,
word TEXT NOT NULL,
hint TEXT
)
""".trimIndent()
)
statement.executeUpdate(
"""
INSERT INTO terms (word, hint)
VALUES ('jdbc', 'Java database API')
"""
)
val result = statement.executeQuery(
"SELECT word, hint FROM terms"
)
while (result.next()) {
println(result.getString("word"))
println(result.getString("hint"))
}
}
}
}
Запрос CREATE TABLE описывает поля, INSERT
кладёт значения в колонки, SELECT возвращает
выбранные столбцы. Имена таблиц и полей в SQL пишут
латиницей, как в примере с terms.