java 7 +
По моему скромному мнению, поскольку я фанат простой java, я бы предложил что-то, что это комбинация вышеупомянутых ответов. Может быть, я опаздываю на вечеринку. Вот код:
String sampleText = "test" + System.getProperty("line.separator");
Files.write(Paths.get(filePath), sampleText.getBytes(StandardCharsets.UTF_8),
StandardOpenOption.CREATE, StandardOpenOption.APPEND);
Если файл не существует, он создает его, и если он уже существует, он добавляет sampleText в существующий файл. Используя это, вы избавляетесь от добавления ненужных библиотек в ваш путь к классам.
Ваш SQL должен иметь 2 предложения. Вставка и выберите последний вставленный идентификатор. Это не зависит от СУБД, поэтому, например, в MySQL это будет выглядеть примерно так:
INSERT INTO <table> (...) VALUES (...); SELECT last_insert_id();
А на стороне приложения вам придется использовать метод расширения Dapper ExecuteScalarAsync
. Например:
// ...
var lastId = await conn.ExecuteScalarAsync<long>("INSERT INTO <table> (...) VALUES (...); SELECT last_insert_id();");
insert into your_table (...)
output INSERTED.(column name)
values (...)
Пост решен! Я использовал транзакции, и все работало! ;)