| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- using MySqlConnector;
- var builder = WebApplication.CreateBuilder(args);
- string password = File.ReadAllText("/run/secrets/db-password");
- string connectionString = $"server=db;user=root;database=example;port=3306;password={password}";
- builder.Services.AddTransient<MySqlConnection>((_provider) => new MySqlConnection(connectionString));
- var app = builder.Build();
- app.MapGet("/", (MySqlConnection connection) => {
- var titles = new List<string>();
- try
- {
- Console.WriteLine("Connecting to MySQL...");
- connection.Open();
- string sql = "SELECT title FROM blog";
- using var cmd = new MySqlCommand(sql, connection);
- using MySqlDataReader reader = cmd.ExecuteReader();
- while (reader.Read())
- {
- titles.Add(reader.GetString(0));
- }
- reader.Close();
- }
- catch (Exception ex)
- {
- return Results.Problem(detail: ex.ToString());
- }
- connection.Close();
-
- return Results.Ok(titles);
- });
- Prepare(connectionString);
- app.Run();
- void Prepare(string connectionString)
- {
- using MySqlConnection connection = new MySqlConnection(connectionString);
- connection.Open();
- using var transation = connection.BeginTransaction();
- using MySqlCommand cmd1 = new MySqlCommand("DROP TABLE IF EXISTS blog", connection, transation);
- cmd1.ExecuteNonQuery();
- using MySqlCommand cmd2 = new MySqlCommand("CREATE TABLE IF NOT EXISTS blog (id int NOT NULL AUTO_INCREMENT, title varchar(255), PRIMARY KEY (id))", connection, transation);
- cmd2.ExecuteNonQuery();
-
- for (int i = 0; i < 5; i++)
- {
- using MySqlCommand insertCommand = new MySqlCommand( $"INSERT INTO blog (title) VALUES ('Blog post #{i}');", connection, transation);
- insertCommand.ExecuteNonQuery();
- }
- transation.Commit();
- connection.Close();
- }
|