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