继续优化

parent de7a539e
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
"dotnetRunMessages": "true", "dotnetRunMessages": "true",
"launchBrowser": true, "launchBrowser": true,
"launchUrl": "swagger", "launchUrl": "swagger",
"applicationUrl": "http://localhost:5000", "applicationUrl": "http://localhost:29135",
"environmentVariables": { "environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development" "ASPNETCORE_ENVIRONMENT": "Development"
} }
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using Microsoft.OpenApi.Models; using Microsoft.OpenApi.Models;
using Performance.Subsidy.Services; using Performance.Subsidy.Services;
using Performance.Subsidy.Services.Models;
using Performance.Subsidy.Services.Repository; using Performance.Subsidy.Services.Repository;
namespace Performance.Subsidy.Api namespace Performance.Subsidy.Api
...@@ -24,6 +25,7 @@ public void ConfigureContainer(ContainerBuilder builder) ...@@ -24,6 +25,7 @@ public void ConfigureContainer(ContainerBuilder builder)
var connectionString = Configuration.GetConnectionString("DefaultConnectionString"); var connectionString = Configuration.GetConnectionString("DefaultConnectionString");
builder.RegisterType<SubsidyService>().InstancePerLifetimeScope(); builder.RegisterType<SubsidyService>().InstancePerLifetimeScope();
builder.RegisterType<ConnectionStringBuilder>().SingleInstance();
builder.RegisterInstance(new ConnectionFactory(connectionString)).SingleInstance(); builder.RegisterInstance(new ConnectionFactory(connectionString)).SingleInstance();
} }
...@@ -35,7 +37,7 @@ public void ConfigureServices(IServiceCollection services) ...@@ -35,7 +37,7 @@ public void ConfigureServices(IServiceCollection services)
{ {
c.SwaggerDoc("v1", new OpenApiInfo { Title = "Performance.Subsidy.Api", Version = "v1" }); c.SwaggerDoc("v1", new OpenApiInfo { Title = "Performance.Subsidy.Api", Version = "v1" });
}); });
services.Configure<ConnectionStringTemplates>(Configuration.GetSection("ConnectionStringTemplates"));
} }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
......
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
}
...@@ -8,5 +8,10 @@ ...@@ -8,5 +8,10 @@
}, },
"ConnectionStrings": { "ConnectionStrings": {
"DefaultConnectionString": "server=192.168.18.166;database=db_performance_subsidy;uid=root;pwd=1234qwer;pooling=true;charset=utf8;convert zero datetime=true;port=3306;connection timeout=120;max pool size=512;allow user variables=true;" "DefaultConnectionString": "server=192.168.18.166;database=db_performance_subsidy;uid=root;pwd=1234qwer;pooling=true;charset=utf8;convert zero datetime=true;port=3306;connection timeout=120;max pool size=512;allow user variables=true;"
},
"ConnectionStringTemplates": {
"MySQLTemplates": "Server={0};Database={1};Uid={2};Pwd={3};pooling=true;charset=utf8;Convert Zero Datetime=True;port=3306;Allow User Variables=True;",
"SqlServerTemplates": "data source={0};initial catalog={1};user id={2};password={3};",
"OracleTemplates": "Password={3};User ID={2};Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST={0})(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME={1})));"
} }
} }
...@@ -4,10 +4,12 @@ ...@@ -4,10 +4,12 @@
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace Performance.Subsidy.Services.Repository namespace Performance.Subsidy.Services.Models
{ {
public class BasicRepository public class ConnectionStringTemplates
{ {
public string MySQLTemplates { get; set; }
public string SqlServerTemplates { get; set; }
public string OracleTemplates { get; set; }
} }
} }
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Performance.Subsidy.Services.Repository
{
public class ConfigService
{
private readonly ConnectionFactory _factory;
public ConfigService(
ConnectionFactory factory)
{
_factory = factory;
}
}
}
using System; namespace Performance.Subsidy
using System.Collections.Generic;
using System.Text;
namespace Performance.Subsidy
{ {
public enum Status public enum Status
{ {
...@@ -14,4 +10,11 @@ public enum Status ...@@ -14,4 +10,11 @@ public enum Status
ParameterError = 6, ParameterError = 6,
Disable = 7, Disable = 7,
} }
public enum DatabaseType
{
MySQL,
SqlServer,
Oracle,
}
} }
namespace Performance.Subsidy
{
public enum DbType
{
MySQL,
MSSQL,
Oracle,
}
}
namespace Performance.Subsidy.Services
{
public class ex_script { }
}
...@@ -26,12 +26,7 @@ public class SubsidyService ...@@ -26,12 +26,7 @@ public class SubsidyService
public async Task<IEnumerable<sub_jobtitle>> GetJobTitle(int allotId) public async Task<IEnumerable<sub_jobtitle>> GetJobTitle(int allotId)
{ {
return await _factory.CreateDefault().QueryAsync<sub_jobtitle> return await _factory.CreateDefault().QueryAsync<sub_jobtitle>("SELECT * FROM sub_jobtitle WHERE AllotID=@allotId", new { allotId });
("SELECT * FROM sub_jobtitle WHERE AllotID=@allotId",
new { allotId },
commandTimeout: _commandTimeout);
} }
} }
} }
...@@ -23,20 +23,20 @@ public IDbConnection CreateDefault() ...@@ -23,20 +23,20 @@ public IDbConnection CreateDefault()
return new MySqlConnection(_connectionString); return new MySqlConnection(_connectionString);
} }
public IDbConnection Create(DbType type, string connectionString) public IDbConnection Create(DatabaseType type, string connectionString)
{ {
try try
{ {
switch (type) switch (type)
{ {
case DbType.MySQL: case DatabaseType.MySQL:
return new MySqlConnection(connectionString); return new MySqlConnection(connectionString);
case DbType.MSSQL: case DatabaseType.SqlServer:
return new SqlConnection(connectionString); return new SqlConnection(connectionString);
case DbType.Oracle: case DatabaseType.Oracle:
return new OracleConnection(connectionString); return new OracleConnection(connectionString);
default: default:
throw new ArgumentException("DbType类型不支持"); throw new ArgumentException("DatabaseType类型不支持");
} }
} }
catch (Exception ex) catch (Exception ex)
...@@ -44,5 +44,6 @@ public IDbConnection Create(DbType type, string connectionString) ...@@ -44,5 +44,6 @@ public IDbConnection Create(DbType type, string connectionString)
throw; throw;
} }
} }
} }
} }
using Microsoft.Extensions.Options;
using Performance.Subsidy.Services.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Performance.Subsidy.Services
{
public class ConnectionStringBuilder
{
private readonly IOptions<ConnectionStringTemplates> _options;
public ConnectionStringBuilder(IOptions<ConnectionStringTemplates> options)
{
_options = options;
}
public string GetConnectionString(DatabaseType type, string ip, string database, string uid, string pwd)
{
switch (type)
{
case DatabaseType.MySQL:
return string.Format(_options.Value.MySQLTemplates, ip, database, uid, pwd);
case DatabaseType.SqlServer:
return string.Format(_options.Value.MySQLTemplates, ip, database, uid, pwd);
case DatabaseType.Oracle:
return string.Format(_options.Value.MySQLTemplates, ip, database, uid, pwd);
default:
throw new ArgumentException("DatabaseType类型不支持");
}
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment