package tutorial;
import java.sql.DriverManager;
public class Main {
  public static void main(String[] args) throws Exception {
    try (var connection = DriverManager.getConnection("jdbc:sqlite:demo.sqlite")) {
      try (var sql = connection.createStatement()) {
        sql.execute("CREATE TABLE IF NOT EXISTS projects(id TEXT PRIMARY KEY, title TEXT NOT NULL)");
      }
      connection.setAutoCommit(false);
      try (var insert = connection.prepareStatement("INSERT INTO projects VALUES (?, ?) ON CONFLICT(id) DO UPDATE SET title=excluded.title")) {
        insert.setString(1, "p1"); insert.setString(2, "Letters");
        insert.executeUpdate(); connection.commit();
      } catch (Exception error) {
        connection.rollback(); throw error;
      }
      try (var query = connection.prepareStatement("SELECT title FROM projects WHERE id=?")) {
        query.setString(1, "p1");
        try (var rows = query.executeQuery()) {
          if (rows.next()) System.out.println(rows.getString("title"));
        }
      }
    }
  }
}
