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

@ -40,10 +40,7 @@ namespace TShockAPI.DB
new SqlColumn("Y", MySqlDbType.Int32),
new SqlColumn("WorldID", MySqlDbType.Text)
);
var creator = new SqlTableCreator(db,
db.GetSqlType() == SqlType.Sqlite
? (IQueryBuilder) new SqliteQueryCreator()
: new MysqlQueryCreator());
SqlTableCreator creator = new(db, db.GetSqlQueryBuilder());
creator.EnsureTableStructure(table);
}
@ -51,19 +48,17 @@ namespace TShockAPI.DB
{
try
{
using (var reader = database.QueryReader("SELECT * FROM RememberedPos WHERE Name=@0", name))
using var reader = database.QueryReader("SELECT * FROM RememberedPos WHERE Name=@0", name);
if (reader.Read())
{
if (reader.Read())
{
int checkX=reader.Get<int>("X");
int checkY=reader.Get<int>("Y");
//fix leftover inconsistencies
if (checkX==0)
checkX++;
if (checkY==0)
checkY++;
return new Vector2(checkX, checkY);
}
int checkX=reader.Get<int>("X");
int checkY=reader.Get<int>("Y");
//fix leftover inconsistencies
if (checkX==0)
checkX++;
if (checkY==0)
checkY++;
return new Vector2(checkX, checkY);
}
}
catch (Exception ex)
@ -80,12 +75,10 @@ namespace TShockAPI.DB
{
try
{
using (var reader = database.QueryReader("SELECT * FROM RememberedPos WHERE Name=@0 AND IP=@1 AND WorldID=@2", name, IP, Main.worldID.ToString()))
using var reader = database.QueryReader("SELECT * FROM RememberedPos WHERE Name=@0 AND IP=@1 AND WorldID=@2", name, IP, Main.worldID.ToString());
if (reader.Read())
{
if (reader.Read())
{
return new Vector2(reader.Get<int>("X"), reader.Get<int>("Y"));
}
return new Vector2(reader.Get<int>("X"), reader.Get<int>("Y"));
}
}
catch (Exception ex)