refactor(db): Update SqlQueryBuilder references + Various refactors

Consolidates the creation of SQL query builders across multiple classes to ensure a unified approach for database operations.

Replaces manual type checks and specific query creators with a generic method for better maintainability and to prevent errors.

Improves code readability and reduces duplication, facilitating easier updates in the future.
This commit is contained in:
Sakura Akeno Isayeki 2025-04-28 15:50:55 +02:00
parent 27fde1f9ac
commit 084411f847
No known key found for this signature in database
GPG key ID: BAB781B71FD2E7E6
15 changed files with 399 additions and 488 deletions

View file

@ -41,10 +41,9 @@ namespace TShockAPI.DB
new SqlColumn("AmountSacrificed", MySqlDbType.Int32),
new SqlColumn("TimeSacrificed", MySqlDbType.DateTime)
);
var creator = new SqlTableCreator(db,
db.GetSqlType() == SqlType.Sqlite
? (IQueryBuilder)new SqliteQueryCreator()
: new MysqlQueryCreator());
SqlTableCreator creator = new(db, db.GetSqlQueryBuilder());
try
{
creator.EnsureTableStructure(table);
@ -85,15 +84,14 @@ namespace TShockAPI.DB
where WorldId = @0
group by itemId";
try {
using (var reader = database.QueryReader(sql, Main.worldID))
try
{
using var reader = database.QueryReader(sql, Main.worldID);
while (reader.Read())
{
while (reader.Read())
{
var itemId = reader.Get<Int32>("itemId");
var amount = reader.Get<Int32>("totalSacrificed");
sacrificedItems[itemId] = amount;
}
var itemId = reader.Get<int>("itemId");
var amount = reader.Get<int>("totalSacrificed");
sacrificedItems[itemId] = amount;
}
}
catch (Exception ex)