sqlserver

第七节:外观模式、适配器模式、模板方法模式详解

我的梦境 提交于 2020-08-19 17:21:57
一. 外观模式 1. 背景   在现实生活中,常常存在办事较复杂的例子,如办房产证或注册一家公司,有时要同多个部门联系,这时要是有一个综合部门能解决一切手续问题就好了。   软件设计也是这样,当一个系统的功能越来越强,子系统会越来越多,客户对系统的访问也变得越来越复杂。这时如果系统内部发生改变,客户端也要跟着改变,这违背了“开闭原则”,也违背了“迪米特法则”,所以有必要为多个子系统提供一个统一的接口,从而降低系统的耦合度,这就是外观模式的目标。 2. 定义和特点 (1). 定义   是一种通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。该模式对外有一个统一接口,外部应用程序不用关心内部子系统的具体的细节,这样会大大降低应用程序的复杂度,提高了程序的可维护性。 (2). 优点  A. 降低了子系统与客户端之间的耦合度,使得子系统的变化不会影响调用它的客户类。  B. 对客户屏蔽了子系统组件,减少了客户处理的对象数目,并使得子系统使用起来更加容易。  C. 降低了大型软件系统中的编译依赖性,简化了系统在不同平台之间的移植过程,因为编译一个子系统不会影响其他的子系统,也不会影响外观对象。 (3). 缺点  A. 不能很好地限制客户使用子系统类。  B. 增加新的子系统可能需要修改外观类或客户端的源代码,违背了“开闭原则”。 3. 具体实现 (1). 模式结构

FreeSql (一)入门

谁说我不能喝 提交于 2020-08-19 09:57:20
FreeSql是一个功能强大的 .NET ORM 功能库,支持 .NetFramework 4.0+、.NetCore 2.1+、Xamarin 等支持 NetStandard 所有运行平台。 QQ群:4336577(已满)、8578575(在线) 模型 FreeSql 使用模型执行数据访问,模型由实体类表示数据库表或视图,用于查询和保存数据。 可从现有数据库生成实体模型,FreeSql 提供 IDbFirst 接口实现 生成实体模型 。 或者手动创建模型,基于模型创建或修改数据库,提供 ICodeFirst 同步结构的 API(甚至可以做到开发阶段自动同步)。 using FreeSql.DataAnnotations; using System; public class Blog { [Column(IsIdentity = true, IsPrimary = true)] public int BlogId { get; set; } public string Url { get; set; } public int Rating { get; set; } } 声明 dotnet add packages FreeSql.Provider.Sqlite static IFreeSql fsql = new FreeSql.FreeSqlBuilder()

Azure Web App (三)切换你的Net Core Web 项目的数据库连接字符串

喜你入骨 提交于 2020-08-19 00:56:41
一,引言   上一篇文章讲到今天我们演示了一下,如何在Web App中创建 “Deployment Slot”进行快速无停机部署新功能代码,也使用VS进行发布到创建的Web App中创建的新的部署槽位中,同时也引出了另外一个问题,环境变量怎么切换,切换槽位后,生产环境的数据库连接字符串怎么办。本篇文章,我会继续 部署槽,进行配置部署槽设置,同时在交换槽位的时候,测试环境/生产环境都能够准确的连接到对于的数据库。😎😎😎😎😎 --------------------我是分割线-------------------- Azure Web App 部署系列: 1,Azure Web App(一)发布你的Net Core Web 项目 2,Azure Web App(二)使用部署槽切换部署环境代码 3,Azure Web App(三)切换你的Net Core Web 项目的数据库连接字符串 二,正文 1,新建Net Core Web 项目 项目名称 “CnBateBlogWeb” 选择 “Web 应用程序(模型视图控制器)”,去掉 “为HTTPS 配置” 的勾选,点击创建 删除 “launchSettings” 文件中 IIS 配置部分 添加一个名叫 “appsettings.Production.json” 配置文件,里面当前项目的生产环境的数据库连接字符串。 ”appsettings

不同类型数据库转换工具

北城以北 提交于 2020-08-18 20:56:00
DB2DB是用于多种主流数据库之间进行数据转换的工具,它是由深圳市米软科技研发于2015年,历时5年测试、完善、应用、升级,已成为一款成熟、应手的产品。 够快速: 1.在千万级别大数据情况下,对比SQLyog、Navicat Premium、Mss2sql等同类型工具,DB2DB的处理速度高出300%以上。 够稳定: 1.在转换前对数据库进行多种已知问题的检查; 2.源数据库同步转换到新数据库时,保留数据表属性设置; 3.数据库无损迁移后,DB2DB自检数据处理情况,列出问题清单; 4.支持T级数据量同步转换。 够安全: 1.官方正版软件,无后门; 2.同步转换数据时,不会更改源数据库的任何资料。 够方便: 1.绿色版免安装; 2.全中文界面,向导式指引操作。 个人版功能说明: 1.主流类型数据库间进行转换(例:SQLServer、MySQL、SQLite、Access、PostgresSQL等); 2.数据库表结构自动同步; 3.数据表索引自动同步; 4.数据表字段默认值自动同步; 5.支持二进制字段数据同步及处理; 6.各类型数据库自增型字段处理; 7.执行同步前对数据表进行检查,避免出现由于数据库自身限制的原因而导致同步失败的情况; 8.可将同步内容导出为 SQL 文件; 9.用户可自定义选择同步的数据表; 10.可将配置方案保存,便于下次快速调用; 11.单线程

sqlserver2016(基础)

♀尐吖头ヾ 提交于 2020-08-18 17:33:45
数据库常用对象 表(存放数据和表示关系的主要形式) 视图(一个或多个表生成的引用表,也成为虚拟表,是查询数据的一种方式,里面不是存放数据,而是存放其查询定义。打开视图的时候就是执行查询定义然后产生相应数据) 索引(对表的某个列或者列的组合进行排序,通过搜索索引表达式的值,可以实现对该类数据的快速访问) 约束(用于保障数据的一致性和完整性) 存储过程(一组完成特定功能的SQL语句组合,经过编译之后以名称的形式存储在SQLserver服务器端的数据库中,用户通过指定存储过程名称来执行) 触发器(一种特殊类型的存储过程,在特定的事件发生时候触发执行) 系统数据库 数据库在安装的时候默认会有4个默认数据库 master数据库(记录所有系统级的信息,数据库文件位置,初始化信息,master数据库如果无法使用,则SQLServer启动失败) model数据库(所有数据库的模板,可以对其进行更改) msdb数据库(用于计划报警和作业等) tempdb数据库(临时数据库,用于保存临时对象和中间结果集) 文件和文件组  文件: 主数据文件(.mdf),一个 次要数据文件(.ndf),0个或者多个 日志文件(.ldf),一个或者多个  文件组: 主文件组(主数据文件、没有明确分配的、系统表分配在这里) 用户定义文件组(CREAT DATEBASE 和 ALTER DATEBASE

[开源] .Net ORM FreeSql 1.8.0-preview 最新动态播报(番号:我还活着)

倖福魔咒の 提交于 2020-08-18 12:23:59
写在开头 FreeSql 是 .NET 开源生态下的 ORM 轮子,在一些人眼里属于重复造轮子:不看也罢。就像昨天有位朋友截图某培训直播发给我看,内容为:“FreeSQL(个人产品),自己玩可以,不要商用。ORM框架:1.安全、稳定(更新稳定、有BUG有人修复,有人升级)”。 这突出其来的“关爱”,让我的内心毫无波澜,确实是毫无波澜,比起当初 FreeSql 初出茅庐之时的讽刺友好得多。写在开头的这些内容并不祈求这部分人改变观念,该黑的请继续黑,黑总比没有关注好,是吧?我无所谓你,但是别人呢?麻烦你们不要无脑抨击,你们这种行为不知道挽杀了多少社区项目。 2018 年 12 月份开发 FreeSql 到现在,1859 颗星,412 Issues,18 PR,170K 包下载量。说明还是有开发者关注和喜爱,只要有人关注,就不会停更不修 BUG 一说。大家有兴趣可以看看更新记录,看看我们的代码提交量,4700+ 单元测试不说非常多,我个人觉得已经超过很多国产项目,有兴趣的再去隔壁“国产第一” ORM 上看看,对比对比!如果不更新了,请把位置让出来;如果有BUG修复不了,请让 FreeSql 来;如果不好用,就不要搞一堆 SEO 害人入坑;如果。。。如果。。。 这不是挑衅,看到对方的 issues 实在不忍,看到对方的源码,哇哦,单元测试在哪里?好了不废话了。。 20个月了,FreeSql

Azure Web App (三)切换你的Net Core Web 项目的数据库连接字符串

半世苍凉 提交于 2020-08-18 09:11:56
一,引言   上一篇文章讲到今天我们演示了一下,如何在Web App中创建 “Deployment Slot”进行快速无停机部署新功能代码,也使用VS进行发布到创建的Web App中创建的新的部署槽位中,同时也引出了另外一个问题,环境变量怎么切换,切换槽位后,生产环境的数据库连接字符串怎么办。本篇文章,我会继续 部署槽,进行配置部署槽设置,同时在交换槽位的时候,测试环境/生产环境都能够准确的连接到对于的数据库。😎😎😎😎😎 --------------------我是分割线-------------------- Azure Web App 部署系列: 1,Azure Web App(一)发布你的Net Core Web 项目 2,Azure Web App(二)使用部署槽切换部署环境代码 3,Azure Web App(三)切换你的Net Core Web 项目的数据库连接字符串 二,正文 1,新建Net Core Web 项目 项目名称 “CnBateBlogWeb” 选择 “Web 应用程序(模型视图控制器)”,去掉 “为HTTPS 配置” 的勾选,点击创建 删除 “launchSettings” 文件中 IIS 配置部分 添加一个名叫 “appsettings.Production.json” 配置文件,里面当前项目的生产环境的数据库连接字符串。 ”appsettings

实训day3

故事扮演 提交于 2020-08-18 03:08:26
1、三表连查 案例:查询每个工种、每个部门的部门名、工种名和最低工资 SELECT d.department_name, j.job_title, MIN(e.salary) 最低工资 FROM departments d , employees e, jobs j WHERE e.‘department_id’=d.‘department_id’ AND e.‘job_id’=j.‘job_id’ GROUP BY e.‘department_id’,e.‘job_id’; 2、非等值连接 案例:查询员工的工资以及对应的工资级别 SELECT salary,grade_level FROM employees e,job_grades g WHERE e.‘salary’ BETWEEN g.‘lowest_sal’ AND g.‘highest_sal’; 3、内连接 join连接,属于sql99语法 分类: 内连接:[inner] join on 外连接: 左外连接 left 【outer】 join on 右外连接 right【outer】 join on 全外连接 full 【outer】 join on ,mysql中不支持!!! sqlserver 和oracle 没有问题 */ 语法: select 字段1,字段2,… from 表1 inner join 表2

高版本Sqlserver数据库还原到低版本数据库的实现方式

耗尽温柔 提交于 2020-08-17 16:42:24
高版本 Sqlserver 数据库还原到低版本数据库的实现方式  现在要将 Sqlserver 高版本( v2008R2 )备份的数据还原到低版本 SqlServer ( v2008 )上去,但是这在 SqlServer 中是没法直接将高版本数据还原到低版本数据库的,所以经过一系列的请教总结出来一下可用方法。 步骤: 点击 所需要还原的数据库—》任务—》生成脚本—》 弹出窗口,进行设置 点击“高级”弹出 “确定”后,返回上一个界面,点击 “下一步” 打开 生成的 sql 文件,根据情况修改一下 在低版本的 SQLserver 机器上,运行 sql 脚本来创建数据库(注意: 需要保证 这个数据库 当前 sqlserver 上是不存在的) 执行后,创建了新数据库“ AM8 ” 来源: oschina 链接: https://my.oschina.net/u/4301949/blog/4295122

Postgresql中最有用的扩展(Extensions)pg_stat_statements

早过忘川 提交于 2020-08-17 16:06:34
Postgresql的Extensions能够延伸,更改和推进Postgres的行为。怎么样?通过hooking到底层的Postgres API hooks。 开源的 Citus数据库 水平扩展了Postgres,它本身就是一个 PostgreSQL扩展 ,它允许Citus保持最新的Postgres版本,而不会像其他Postgres分支那样落后。 尽管我以前已经写过 各种类型的扩展 ,但是今天我想更深入地了解最有用的Postgres扩展:pg_stat_statements。 如你所见,我刚从FOSDEM回来。 FOSDEM是在布鲁塞尔举行的年度免费开源软件会议,在活动中,我在PostgreSQL开发室中发表了有关 Postgres扩展的演讲 。 到今天结束时,Postgres开发室中进行的一半以上的讨论都提到了pg_stat_statements: Most frequently dispensed #PostgreSQL tip-of-the-day here in the Postgres devroom at #FOSDEM ? Use pg_stat_statements! @Xof ’s talk on Breaking PostgreSQL at Scale is the 4th talk today to drive this point home HT