sqlserver

用了Dapper之后通篇还是SqlConnection,真的看不下去了

我的梦境 提交于 2020-08-07 14:55:44
一:背景 1. 讲故事 前几天看公司一个新项目的底层使用了dapper,大家都知道dapper是一个非常强大的半自动化orm,帮程序员解决了繁琐的mapping问题,用起来非常爽,但我还是遇到了一件非常不爽的事情,如下代码所示: public class UserDAL : BaseDAL { public List<UserModel> GetList() { using (SqlConnection conn = new SqlConnection(ConnectionString)) { var list = conn.Query<UserModel>("select * from users").ToList(); return list; } } public bool Insert() { using (SqlConnection conn = new SqlConnection(ConnectionString)) { var execnum = conn.Execute("insert into xxx "); return execnum > 0; } } public bool Update() { using (SqlConnection conn = new SqlConnection(ConnectionString)) { var execnum =

手写IOC容器

邮差的信 提交于 2020-08-07 11:29:07
IOC(控制翻转)是程序设计的一种思想,其本质就是上端对象不能直接依赖于下端对象,要是依赖的话就要通过抽象来依赖。这是什么意思呢?意思就是上端对象如BLL层中,需要调用下端对象的DAL层时不能直接调用DAl的具体实现,而是通过抽象的方式来进行调用。这样做是有一定的道理的。有这么一个场景,你们的项目本来是用Sqlserver来进行数据访问的,那么就会有一个SqlserverDal对象。BLL层调用的时候通过new SqlserverDal(),直接创建一个SqlserverDal对象进行数据访问,现在项目又要改为Mysql数据库,用MysqlDal进行数据访问。这时候就麻烦了,你的BLL层将new SqlserverDal()全部改为new MysqlDal()。同理BLL层也是这个道理。这么做,从程序的架构而言是相当不合理的,我只是想将SqlserverDal替换为MysqlDal。按道理说我只要添加MysqlDal对象就可以了。可现在的做法是还要将BLL中的new SqlserverDal()全部改一遍。这未免有点得不偿失了。这时IOC就排上用场了,IOC的核心理念就是上端对象通过抽象来依赖下端对象,那么我们在BLL中,不能直接通过new SqlserverDal()来创建一个对象,而是通过结构来声明(抽象的形式来进行依赖)

Asp.net core下利用EF core实现从数据实现多租户(2) : 按表分离

☆樱花仙子☆ 提交于 2020-08-07 10:17:58
前言 在 上一篇 文章中,我们介绍了如何根据不同的租户进行数据分离,分离的办法是一个租户一个数据库。 也提到了这种模式还是相对比较重,所以本文会介绍一种更加普遍使用的办法: 按表分离租户。 这样做的好处是什么: 在目前的to B的系统中,其实往往会有一个Master数据库,里面使用的是系统中主要的数据,各个租户的数据,往往只是对应的订单、配置、客户信息。 这就造成了,租户的数据不会有很多的种类,他的数据表的数量相对Master来说还是比较少的。 所以在单一租户数据量没有十分庞大的时候,就没有必要对单一租户数据独立到单一数据库。多个租户数据共享使用一个数库是一个折中的选择。 下图就是对应的数据表结构,其中store1和store2使用不同的数据表,但有同一个表名后缀和相同结构。 实施 项目介绍 本文的项目还是沿用上一篇文章的代码,进行加以修改。所以项目中的依赖项还是那些。 但由于代码中有很多命名不好的地方我进行了修改。并且,由于代码结构太简单,对这个示例实现起来不好,进行了少量的结构优化。 项目中新增的对象有什么: 1. ModelCacheKeyFactory,这个是EF core提供的对象,主要是要来产生ModelCacheKey 2. ModelCacheKey, 这个跟ModelCacheKeyFactory是一对的,如果需要自定义的话一般要同时实现他们俩 3.

.Net Core in Docker极简入门(上篇)

烂漫一生 提交于 2020-08-07 09:28:49
Tips:本篇已加入 系列文章阅读目录 ,可点击查看更多相关文章。 目录 前言 开始 环境准备 Docker基础概念 Docker基础命令 Docker命令实践 构建Docker镜像 Dockerfile bulid & run 前言 Docker 是一个开源的应用容器引擎,它十分火热,如今几乎成为了后端开发人员必须掌握的一项技能。即使你在生产环境中可能用不上它,就算把它当作一个辅助开发的工具来使用,也是非常方便的。本文就介绍一下.Net Core应用在Docker中的一些基本使用。 开始 环境准备 首先安装docker,去官网下载: https://www.docker.com/get-started windows系统的话,默认win10(较新的版本更好,可以用wsl)。win7只能用Docker Toolbox,bug非常多,不建议使用。。。 windows/mac 直接下载对应的文件安装就可以(本文的系统环境是win10 2004版本。),linux可以通过命令来安装。关于安装,网上已经有很多资料了,就不多介绍。只是安装后有2个必要的设置需要注意一下: 镜像加速 有很多提供免费加速服务的网站,可以自行搜索,我这里用的是阿里云。这个国内网络必须配置,不然镜像几乎拉取不下来。 镜像储存路径 默认docker的运行文件是在C盘,C盘空间不够的话,可以设置到别的盘。

SQL Server 索引的含义和特点

做~自己de王妃 提交于 2020-08-07 04:30:28
索引用于快速找出在某个列中某一特定值的行。不使索引,数据库必须从第一条记录开始读完整个表,直到找到相关行。如果表中查询的列有一个索引,数据库能快速到达一个位置去搜寻数据,而不必查看所有数据。 索引的含义和特点: 索引是一个单独的、存储在磁盘上的数据结构,他们包含着对数据表里所有记录的应用指针。使用索引用于快速找出在某个或多个列中有一某特定值的行,对相关列使用索引是降低查询操作时间的最佳途径,索引包含有表或视图中的一列或多列生成的键。 数据库中现在有2万条记录,现在要执行这样一个查询:SELECT* FROM table where num=10000。如果没有索引,必须遍历整个表,直到num等于10000的这一行被找到为止;如果在num列上创建索引,SQLServer不需要任何扫描,直接在索引里面找10000,就可以得知这一行的位置。可见,索引的建立可以加快数据库的查询速度。 索引的优点主要有以下几条: 1.通过创建唯一索引,可以保证数据库表中每一行数据的唯一性。 2.可以大大加快数据的查询速度。 3.实现数据的参照完整性,可以加速表与表之间的连接。 4.在使用分组和排序字句进行数据查询时,也可以显著减少查询中分组和排序的时间。 索引的缺点主要有以下几条: 1.创建和维护索引要消耗时间,并且随着数据量的增加所耗费的时间也会增加。 2.索引需要占磁盘空间,除了数据表占数据空间外

实用!一键生成数据库文档,堪称数据库界的Swagger

倖福魔咒の 提交于 2020-08-06 21:14:31
本文收录在个人博客: www.chengxy-nds.top ,技术资料共享,同进步 最近部门订单业务调整,收拢其他业务线的下单入口,做个统一大订单平台。需要梳理各业务线的数据表,但每个业务线库都有近百张和订单相关的表,挨个表一个一个字段的弄脑瓜子嗡嗡的。 为了不重复 CV 操作,抱着一丝希望开始在 GitHub 里找,看看有没有什么工具可以用,结果就真的发现了宝藏, screw (螺丝钉),居然可以生成数据库文档,优秀啊~。 一、数据库支持 [x] MySQL [x] MariaDB [x] TIDB [x] Oracle [x] SqlServer [x] PostgreSQL [x] Cache DB 二、配置 1、pom文件 引入 screw 核心包, HikariCP 数据库连接池, HikariCP 号称性能最出色的数据库连接池。 <!-- screw核心 --> <dependency> <groupId>cn.smallbun.screw</groupId> <artifactId>screw-core</artifactId> <version>1.0.3</version> </dependency> <!-- HikariCP --> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP

python3.7 连接sql server出现pymssql.OperationalError: (20009, b&apos;DB-Lib error message 20009, severity ...

夙愿已清 提交于 2020-08-06 21:10:05
  今天在使用python3.7中的pymssql 连接sqlserver的时候遇到的问题:   pymssql.OperationalError: (20009, b'DB-Lib error message 20009, severity 9:\nUnable to connect: Adaptive Server is unavailable or does not exist (SZS\\SQLEXPRESS)\n')    现在已经解决,特地来进行记录。   1.在使用的python连接sql server的时候,先进行以下配置:    sql server配置管理器--->SQL Server 网络配置---->选择当前使用的实例------>开启TCP/IP---->找到当前的动态端口号(当前是51091),如下图:   2.代码如下: import pymssql conn = pymssql.connect(host= ' localhost ' ,server= ' SZS\SQLEXPRESS ' , port= ' 51091 ' , user= ' sa ' , password= ' 123 ' , database= ' mysql ' ) cur = conn.cursor() sqlstr = " select * from book " cur

.Net Core in Docker极简入门(上篇)

陌路散爱 提交于 2020-08-06 15:39:12
Tips:本篇已加入 系列文章阅读目录 ,可点击查看更多相关文章。 目录 前言 开始 环境准备 Docker基础概念 Docker基础命令 Docker命令实践 构建Docker镜像 Dockerfile bulid & run 前言 Docker 是一个开源的应用容器引擎,它十分火热,如今几乎成为了后端开发人员必须掌握的一项技能。即使你在生产环境中可能用不上它,就算把它当作一个辅助开发的工具来使用,也是非常方便的。本文就介绍一下.Net Core应用在Docker中的一些基本使用。 开始 环境准备 首先安装docker,去官网下载: https://www.docker.com/get-started windows系统的话,默认win10(较新的版本更好,可以用wsl)。win7只能用Docker Toolbox,bug非常多,不建议使用。。。 windows/mac 直接下载对应的文件安装就可以(本文的系统环境是win10 2004版本。),linux可以通过命令来安装。关于安装,网上已经有很多资料了,就不多介绍。只是安装后有2个必要的设置需要注意一下: 镜像加速 有很多提供免费加速服务的网站,可以自行搜索,我这里用的是阿里云。这个国内网络必须配置,不然镜像几乎拉取不下来。 镜像储存路径 默认docker的运行文件是在C盘,C盘空间不够的话,可以设置到别的盘。

bi软件是做什么用的?

☆樱花仙子☆ 提交于 2020-08-06 11:53:48
BI软件是商业智能(Business Intelligence)软件的英文缩写。目前,商业智能通常被理解为将企业中现有的数据转化为知识,帮助企业做出明智的业务经营决策的工具。商务智能系统中的数据来自企业其他业务系统。例如商贸型企业,其商务智能系统数据包括业务系统的订单、库存、交易账目、客户和供应商信息等,以及企业所处行业和竞争对手的数据、其他外部环境数据。而这些数据可能来自企业的CRM、SCM、进销存等业务系统。 今天小麦从数据连接、数据处理、制作报表、自助分析、数据共享等方面,和大家探讨下BI软件具体能做什么呢? 一、BI软件可以连接不同各种数据库和文件的数据。 众所周知,无论是制作报表进行数据可视化还是挖掘数据更深次的内涵,获取数据是企业进行一切数据分析的前提。数据是不断更新的,目前实际大部分企业是将数据存储在数据库中,使用数据库数据来制作报表,并且报表内容会随着数据库的更新而更新。而数据分析工具则是通过数据连接来建立与各种数据库、文件到系统的连接,为后续处理和分析提供数据支持,所以数据连接则是数据分析软件不可或缺的能力。 Smartbi能打通各类数据源,丰富的数据连接能力能够从各种数据源中抓取数据进行分析,除了支持大家常用的oracle、sqlserver、mysql等关系型数据库,各种主流大数据库、非关系型数据库、多维数据库、本地文件如:excel、txt、csv

sonarqube+sonar_scanner+jenkins执行代码检查

社会主义新天地 提交于 2020-08-06 06:30:05
一、简介 1、SonarQube 介绍 SonarQube 是一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题。同时,它提供了丰富的插件,支持多种语言的检测,如 Java、Python、Groovy、C、C++等几十种编程语言的检测。它主要的核心价值体现在如下几个方面: (1)检查代码是否遵循编程标准:如命名规范,编写的规范等。 (2)检查设计存在的潜在缺陷:SonarQube 通过插件 Findbugs、Checkstyle 等工具检测代码存在的缺陷。 (3)检测代码的重复代码量:SonarQube 可以展示项目中存在大量复制粘贴的代码。 (4)检测代码中注释的程度:源码注释过多或者太少都不好,影响程序的可读可理解性。 (5)检测代码中包、类之间的关系:分析类之间的关系是否合理,复杂度情况。 2、SonarQube 平台是由 4 个部分组成 ① SonarQube Server ② SonarQube Database ③ SonarQube Plugins ④ SonarQube Scanner 3、SonarQube 工作流程 SonarQube 在进行代码质量管理时,会从下图 所示的七个纬度来分析项目的质量。 SonarQube 需要数据库的支持,用于存储检测项目后的分析数据,同时为了实现可持续监测,还需要持续集成工具(如Jenkins