Вставка строк в SQLite
Запрос INSERT INTO перечисляет столбцы и
значения для новой строки. Его выполняют через
объект Statement или PreparedStatement.
Метод executeUpdate возвращает, сколько строк
изменил запрос. Для одной вставки это обычно
1:
import java.sql.DriverManager
fun main() {
DriverManager.getConnection("jdbc:sqlite:ledger.db")
.use { connection ->
connection.createStatement().use { statement ->
statement.execute(
"""
CREATE TABLE IF NOT EXISTS entries (
id INTEGER PRIMARY KEY,
tag TEXT NOT NULL,
amount INTEGER NOT NULL
)
"""
)
val affected = statement.executeUpdate(
"""
INSERT INTO entries (tag, amount)
VALUES ('fuel', 420)
"""
)
println(affected)
}
}
}
Несколько вставок подряд накапливают строки в одной
таблице. Каждый вызов executeUpdate сообщает
свой счётчик:
import java.sql.DriverManager
fun main() {
DriverManager.getConnection("jdbc:sqlite:ledger.db")
.use { connection ->
connection.createStatement().use { statement ->
statement.execute(
"""
CREATE TABLE IF NOT EXISTS entries (
id INTEGER PRIMARY KEY,
tag TEXT NOT NULL,
amount INTEGER NOT NULL
)
"""
)
val first = statement.executeUpdate(
"INSERT INTO entries (tag, amount) VALUES ('rent', 900)"
)
val second = statement.executeUpdate(
"INSERT INTO entries (tag, amount) VALUES ('tax', 150)"
)
println(first + second)
}
}
}
Создайте таблицу beacons в signal.db
и добавьте запись с кодом "north" и уровнем
7. Выведите число затронутых строк.
Добавьте вторую запись с кодом "south"
и уровнем 3. Выведите сумму счётчиков
обеих вставок.