继续优化

parent de7a539e
......@@ -22,7 +22,7 @@
"dotnetRunMessages": "true",
"launchBrowser": true,
"launchUrl": "swagger",
"applicationUrl": "http://localhost:5000",
"applicationUrl": "http://localhost:29135",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
......
......@@ -6,6 +6,7 @@
using Microsoft.Extensions.Hosting;
using Microsoft.OpenApi.Models;
using Performance.Subsidy.Services;
using Performance.Subsidy.Services.Models;
using Performance.Subsidy.Services.Repository;
namespace Performance.Subsidy.Api
......@@ -24,6 +25,7 @@ public void ConfigureContainer(ContainerBuilder builder)
var connectionString = Configuration.GetConnectionString("DefaultConnectionString");
builder.RegisterType<SubsidyService>().InstancePerLifetimeScope();
builder.RegisterType<ConnectionStringBuilder>().SingleInstance();
builder.RegisterInstance(new ConnectionFactory(connectionString)).SingleInstance();
}
......@@ -35,7 +37,7 @@ public void ConfigureServices(IServiceCollection services)
{
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.
......
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
}
}
......@@ -8,5 +8,10 @@
},
"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;"
},
"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 @@
using System.Text;
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;
using System.Collections.Generic;
using System.Text;
namespace Performance.Subsidy
namespace Performance.Subsidy
{
public enum Status
{
......@@ -14,4 +10,11 @@ public enum Status
ParameterError = 6,
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
public async Task<IEnumerable<sub_jobtitle>> GetJobTitle(int allotId)
{
return await _factory.CreateDefault().QueryAsync<sub_jobtitle>
("SELECT * FROM sub_jobtitle WHERE AllotID=@allotId",
new { allotId },
commandTimeout: _commandTimeout);
return await _factory.CreateDefault().QueryAsync<sub_jobtitle>("SELECT * FROM sub_jobtitle WHERE AllotID=@allotId", new { allotId });
}
}
}
......@@ -23,20 +23,20 @@ public IDbConnection CreateDefault()
return new MySqlConnection(_connectionString);
}
public IDbConnection Create(DbType type, string connectionString)
public IDbConnection Create(DatabaseType type, string connectionString)
{
try
{
switch (type)
{
case DbType.MySQL:
case DatabaseType.MySQL:
return new MySqlConnection(connectionString);
case DbType.MSSQL:
case DatabaseType.SqlServer:
return new SqlConnection(connectionString);
case DbType.Oracle:
case DatabaseType.Oracle:
return new OracleConnection(connectionString);
default:
throw new ArgumentException("DbType类型不支持");
throw new ArgumentException("DatabaseType类型不支持");
}
}
catch (Exception ex)
......@@ -44,5 +44,6 @@ public IDbConnection Create(DbType type, string connectionString)
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