using Dapper; using MySql.Data.MySqlClient; using System.Data; using System.Data.SqlClient; /// /// 数据库操作类 需要nuget 安装 Dapper 和 MySql.Data /// public class MysqlDBHelper { // todo 生产环境切换数据库地址 //#if DEBUG private const string _basicConnectionStr = "Server=192.168.2.9;Port=3306;Database=marking_basic;Uid=root;Pwd=qwe123!@#;MinimumPoolSize=1;MaximumPoolSize=100;CharSet=utf8mb4;AllowLoadLocalInfile=true;AllowUserVariables=True;"; //#else // private const string _basicConnectionStr = // "Server=mk-rds.23544.com;Port=33306;Database=marking_basic;Uid=marking;Pwd=poiuytPOIUYT098765)(*&^%;MinimumPoolSize=1;MaximumPoolSize=100;CharSet=utf8mb4;AllowLoadLocalInfile=true;AllowUserVariables=True;"; //#endif private string _tenantConnectionStr; public MysqlDBHelper(long tenantCode) { if (tenantCode <= 0) { throw new System.ArgumentNullException("tenantCode"); } _tenantConnectionStr = GetTenantConnectionString(tenantCode); } private string GetTenantConnectionString(long tenantCode) { using (IDbConnection connection = new MySqlConnection(_basicConnectionStr)) { var tenant = connection.QueryFirst("select * from tenant where tenant_code=" + tenantCode); return "Server=" + tenant.ip_addr + ";Port=" + tenant.port + ";Database=" + tenant.database + ";Uid=" + tenant.dbuser + ";Pwd=" + tenant.password + ";MinimumPoolSize=1;MaximumPoolSize=100;CharSet=utf8mb4;AllowLoadLocalInfile=true;AllowUserVariables=True;"; } } public DataTable ExecuteQuery(string sql) { DataTable dt = new DataTable(); using (IDbConnection connection = new MySqlConnection(_tenantConnectionStr)) { using (var reader = connection.ExecuteReader(sql)) { dt.Load(reader); } } return dt; } public object ExecuteScalar(string sql) { using (IDbConnection connection = new MySqlConnection(_tenantConnectionStr)) { return connection.ExecuteScalar(sql); } } public int ExecuteNoQuery(string sql) { using (IDbConnection connection = new MySqlConnection(_tenantConnectionStr)) { return connection.Execute(sql); } } public int ExecuteNoQuery(string sql, params MySqlParameter[] sp) { using (MySqlConnection connection = new MySqlConnection(_tenantConnectionStr)) { connection.Open(); using (MySqlCommand cmd = new MySqlCommand(sql, connection)) { cmd.CommandType = CommandType.Text; if (sp != null && sp.Length > 0) { cmd.Parameters.AddRange(sp); } return cmd.ExecuteNonQuery(); } } } }