连接字符串¶
神通数据库提供程序都需要特定形式的连接字符串才能连接到数据库。 有时,此连接字符串包含需要保护的敏感信息。 在开发、测试和生产等环境之间移动应用程序时,可能还需要更改连接字符串。
连接字符串关键词对应表(不区分大小写)
| 关键词 | 名称 |
|---|---|
| HOST,SERVER,DATA SOURCE | 服务器的地址 |
| PORT | 连接端口(默认2003) |
| DATABASE,DB,INITIAL CATALOG | 数据库的名称(默认为用户名) |
USERNAME,USER NAME,
USER,USERID,USER ID,UID
|
连接用户名称 |
| PASSWORD,PSW,PWD | 用户密码 |
| SSL (true,false,yes,no,0,1) | SSL安全连接(默认:False) |
| SSLMODE(允许(Allow)或禁用(Disable)) | 连接SSL模式控制 (默认为Disable) |
| ENCODING | 编码方式 (操作系统) |
| TIMEOUT | 连接打开可等待时间(默认15s) |
| CONNECTIONLIFETIME | 允许未使用等待连接(默认15s) |
| COMMANDTIMEOUT | 命令执行后等待数据库响应超时时间 (默认0s 代表不超时) |
| POOLING | 使用数据库连接池(默认:True) |
| MAXPOOLSIZE | 数据库连接池最大连接数(1000) |
| MINPOOLSIZE | 数据库连接池最小连接数(1) |
| STMTROLLBACK | 事务回滚方式(事务级别0,语句级别1,默认0) |
| PROTOCOLTYPE | 协议类型,区分新旧协议(默认4) |
| FETCHSIZE | 一次从数据库获取的结果集行数(默认50) |
| USEOBSOLETEPROTOCOL | 驱动是否直接使用旧协议(默认false) |
| LOGLEVEL | 开启日志级别 (日志级别,分为: 0,1,2,3,4, 5, 6, 7级, 默认3) |
| KEEPALIVED | 驱动是否启动keepalive功能(默认true) |
| KEEPALIVEINTERVAL | keepalive检测包发送间隔时间如果发送检测包后没有
回应等待间隔时间后再次发送检测包(默认75000 ms)
|
| KEEPALIVEWAIT | keepalive等待时间,该时间内没有socket操作则发送检测包
(默认3000000 ms)
|
| BATCHBUFFERSIZE | 批量执行的缓存大小(最大值1024mb,最小值 1mb,默认10mb) |
| EXECUTEBATCHSIZE | 普通execute语句一次执行次数达到多少可以走batch协议
(最大值5000,最小值1,表示不走Batch协议,默认值 100)
|
| NETWORKDATABYSTRING | 数据格式是采用字符串方式传输还是采用协议的方式传输
(默认false采用协议方式传输)
|
| DECIMALDATABYSTRING | 小数的类型,如float、double、numeric、decimal是否
按字符串格式传输(默认true)
|
| PREPARECACHESIZE | prepareCacheSize:preparedStatement 缓存,
当prepareCacheSize>0时,
该功能将启用,缓存中preparedStatement
个数为prepareCacheSize个s数(默认 0)
|
| PREPAREEXECUTEQUERY | 不带参数的prepare语句是否可以直接
走query协议执行sql语句(默认true)
|
| RW,READWRITE,DISPATCH,DISTRIBUTED | 开启读写分离模式(默认 false)
|
| WAITSYNCREAD | 读写分离读备机时是否
等待备机数据同步完成(默认false)
|
| THREADSYNCREAD | 是线程级lsn true(使用线程级lsn仅保证可以查询到同一个
线程之前的更新事务所做的修改),全局 lsn false
(使用全局lsn保证可以查询到所
有线程之前的更新事务所做的修改)(默认true)
|
| SLAVEDELAYINTERVA | 在备机查询不到最新数据的情况下,
一段时间之内不再尝试向备机发送查询语句(默认0ms)
|
| MASTERLOADRATE | 分发时主机负载率0-100(默认0)
|
| REQUIREDSYNCREDO | 读操作是否可以分发到非强制同步备机,
默认是false表示可以分发。强制同步
备机是指数据库配置参数
ENABLE_HA_SLAVE_SYNC_REDO为TURE的同步备机
(默认false)
|
| TRANSACTIONSTRATEGY | 1 事务中的所有语句都分发到主机;
2 务开始的读语句可以分发到备机,一旦出现写语句
后面的语句都分发到主机(默认2)
|
连接字符串格式¶
String connectionSql = "Server=127.0.0.1;Port=2003;User Id=SYSDBA;Password=szoscar55;Database=OSRDB;Encoding=GBK;";
在ASP.NET Core配置文件appsettings.json中使用¶
在 ASP.NET Core 配置系统非常灵活,并且可以将连接字符串存储在
appsettings.json 、环境变量、用户密钥存储或其他配置源中。
{
"ConnectionStrings": {
"MyDatabase": "Server=127.0.0.1;Port=2003;User Id=SYSDBA;Password=szoscar55;Database=OSRDB;"
},
}
然后,上下文通常在中配置为在 Startup.cs 从配置中读取的连接字符串中。
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<MyDbContext>(options =>
options.UseOscar(Configuration.GetConnectionString("MyDatabase")));
}