上海建网站多少钱,小程序制作定制开发,微信公众号怎么做成微网站,wordpress 文章背景NewLife.XCode是一个有10多年历史的开源数据中间件#xff0c;由新生命团队(2002~2019)开发完成并维护至今#xff0c;以下简称XCode。整个系列教程会大量结合示例代码和运行日志来进行深入分析#xff0c;蕴含多年开发经验于其中#xff0c;代表作有百亿级大数据实时计算项… NewLife.XCode是一个有10多年历史的开源数据中间件由新生命团队(2002~2019)开发完成并维护至今以下简称XCode。整个系列教程会大量结合示例代码和运行日志来进行深入分析蕴含多年开发经验于其中代表作有百亿级大数据实时计算项目。开源地址https://github.com/NewLifeX/X 求star, 652 回到目录连接字符串XCode支持SqlServer、SQLite、MySql、Oracle、PostgreSQL、Access、SqlCe等多种数据库常用连接字符串模板如下add nameSQLite connectionStringData Sourcetest.db; providerNameSqlite /add nameMySql connectionStringServer.;Port3306;Databasemysql;Uidroot;Pwd; providerNameMySql.Data.MySqlClient /add nameMSSQL connectionStringServer.;User IDsa;Passwordsa;DatabaseTest;datapath~\App_Data providerNameSystem.Data.SqlClient /add nameOracle connectionStringData SourceTcp://127.0.0.1/ORC;User IDsys;Passwordadmin;Ownermis providerNameSystem.Data.OracleClient /add namePostgreSQL connectionStringServer.;Databasemaster;Uidroot;Pwdroot; providerNamePostgreSQL.Data.PostgreSQLClient /add nameMSSQL connectionStringServer.;Integrated SecuritySSPI;DatabaseTest providerNameSystem.Data.SqlClient /add nameOracle connectionStringData Sourceorc;User IDsys;Passwordadmin; providerNameSystem.Data.OracleClient /!--OLE DB Services-1表示打开连接池--add nameAccess connectionStringProviderMicrosoft.Jet.OLEDB.4.0; Data Source~\App_Data\Test.mdb;Persist Security InfoFalse;OLE DB Services-1 providerNameAccess/add nameSqlCe connectionStringData Sourcetest.sdf; providerNameSqlCe /连接字符串最常见的地方就是app.config/web.config中的connectionStrings段。这里特别注意name正是数据模型中讲到的连接名ConnName这个name一般取业务模块名字上面的名字仅仅是为了表示这是哪一种数据库实际项目中有用户自己起名字。每个数据模型生成的实体类都有一个ConnName设置表明该实体类需要使用哪一个连接后面是连接字符串和数据库类型。注意划重点XCode实体类支持任意切换数据库完全由连接字符串和providerName决定所要使用的数据库在这里强烈推荐开发环境使用SQLite生产环境再更换SqlServer/MySql/Oracle的连接字符串。 验证连接的办法也很简单var dalDAL.Create(ConnName)即可DAL是XCode数据层总入口针对数据库的任何操作都通过该类桥接。其中DAL.ConnStrs管理着所有的连接名以及对应的连接字符串DAL.Create(connName)时从中查找并针对连接名创建单一实例每个连接名一个DAL实例。也可以通过DAL.AddConnStr(school, Data Sourceschool.db;, null, MySql)来动态添加连接名以及连接字符串最后一个参数写数据库名。 连接字符串的第三种使用方式也是最高级的一种支持DAL.OnResolve委托当配置文件或动态配置中找不到相应连接名时执行该委托。为了集成配置中心例如新生命团队的开源项目星尘Stardust一般在应用初始化时注册DAL.OnResolve到外部配置中心。 最后如果没有任何地方设置某个连接名并且配置中心也没有找到XCode将会自动创建一个SQLite连接字符串。因此XCode实体类永远不会提示找不到连接字符串而是会自动为了创建SQLite连接并且建库建表。 回到目录配置文件标准配置文件位于Config/XCode.config首次使用时自动创建也可以通过XCode.Setting.Current来读写?xml version1.0 encodingutf-8?!--XCode设置--Setting!--调试--Debugtrue/Debug!--输出SQL。是否输出SQL语句默认启用--ShowSQLtrue/ShowSQL!--SQL目录。设置SQL输出的单独目录默认为空SQL输出到当前日志中。生产环境建议输出到站点外单独的SqlLog目录--SQLPath/SQLPath!--SQL执行时间。跟踪SQL执行时间大于该阀值将输出日志默认1000毫秒--TraceSQLTime1000/TraceSQLTime!--连接映射。连接名映射#表名映射把实体类中的Test2和Test3连接名映射到Test去--ConnMaps/ConnMaps!--参数化添删改查。默认关闭--UseParameterfalse/UseParameter!--SQLite默认目录。没有设置连接字符串的连接默认创建SQLite连接数据库放在该目录--SQLiteDbPath..\Data/SQLiteDbPath!--备份目录。备份数据库时存放的目录--BackupPath..\Backup/BackupPath!--命令超时。查询执行超时时间默认0秒不限制--CommandTimeout0/CommandTimeout!--数据层缓存。默认0秒--DataCacheExpire0/DataCacheExpire!--实体缓存过期。整表缓存实体列表默认10秒--EntityCacheExpire10/EntityCacheExpire!--单对象缓存过期。按主键缓存实体默认10秒--SingleCacheExpire10/SingleCacheExpire!--扩展属性过期。扩展属性Extends缓存默认10秒--ExtendExpire10/ExtendExpire!--反向工程。Off 关闭ReadOnly 只读不执行On 打开仅新建Full 完全修改删除--MigrationOn/Migration/Setting各配置项解释Debug。顾名思义这是XCode的调试开关打开后日志中会多写一些东西告诉你它正在做什么事情分析问题的时候可以打开如果嫌日志太少也可以打开咱们日志性能很好不用担心ShowSQL。显示每一个执行的SQL语句可能是配置中最常用的一个配置项可以在日志中明明白白看到应用在执行啥数据库操作每分钟执行超过30次的中大型应用务必关闭否则光日志就能写爆磁盘SQLPath。SQL日志默认跟普通日志放在一起设置该相对路径后可以独立存放TraceSQLTime。慢日志跟踪时间默认1000ms执行时间超过此值的SQL将输出在日志中常规日志非SQL日志对于中大型系统分析问题非常有用UseParameter。使用参数名查询默认false设置为true时执行的添删改查将使用参数化操作。该参数也可以写在连接字符串中SQLiteDbPath。没有给连接名设置任何连接字符串时默认生成SQLite数据库该设置是存放这些默认SQLite数据库的目录CommandTimeout。命令执行超时时间默认0不限制可根据应用需要设为15秒或30秒DataCacheExpire。数据层缓存一级缓存有效期以select语句为key缓存结果数据集任何添删改操作或过期时清空缓存。默认0秒web前台网站建议设为10秒EntityCacheExpire。实体缓存二级缓存有效期上一章有提到Meta.Cache对应实体缓存默认10秒过期后继续返回旧数据并异步更新添删改操作清空SingleCacheExpire。对象缓存三级缓存有效期上一章有提到Meta.SingleCache默认10秒过期后继续返回旧数据并异步更新添删改操作清空ExtendExpire。扩展属性有效期上一章扩展属性部分有提到Extends带有的缓存效果默认10秒Migration。反向工程自动建库建表加字段改字段等就靠它设置。Off 关闭ReadOnly 只读不执行On 打开仅新建Full 完全修改删除。默认On仅新建经验表明最合理 回到目录连接字符串高级设置上面的设置对整个应用全局有效而需要针对具体某个连接进行控制可以把设置项写在连接字符串中该功能最常用的场景就是配置中心。高级设置如下ShowSQL。用法同上针对性打开SQL日志UseParameter。用法同上针对性打开参数化Migration。用法同上可针对连接控制是否打开反向工程某些只读连接可以设置OffDataCache。用法同上DataCacheExpire针对性设置当前连接Readonly。该连接是否只读只读连接在数据层禁止执行Insert/Update/DeleteTablePrefix。该连接下所有表名增加前缀适用于多个系统共用一个库避免不同系统的表名重名Owner。拥有者数据表所在Schema和登录用户不一致时需要设置数据表所在SchemaOracle中所属用户Provider。提供者数据库类型特用于配置中心便于在连接字符串中指定数据库类型SQLite数据库的连接字符串有特殊支持外部没有设置时自动配置WAL等以极大提高性能。提升效果可参考飞仙 http://feixian.newlifex.com 此外MySql和Oracle的数据源还支持 Data Sourcetcp://10.0.0.3:1234/racdb 的简写用法。XCode配置Debug为true时日志会输出调整好的最终连接字符串可用于学习。