sqlserver

springboot整合分页插件PageHelper

只愿长相守 提交于 2020-08-14 16:51:17
1.pom引入 <!-- mybatis-plus --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.12</version> </dependency> <!-- 分页插件--> <!-- <dependency>--> <!-- <groupId>com.github.pagehelper</groupId>--> <!-- <artifactId>pagehelper</artifactId>--> <!-- <version>5.1.10</version>--> <!-- </dependency>--> 使用注释的会报版本错 2. 配置文件 ############# 分页插件PageHelper配置 ############# pagehelper.helper-dialect=sqlserver

【.NET Core项目实战-统一认证平台】第九章 授权篇-使用Dapper持久化IdentityServer4

被刻印的时光 ゝ 提交于 2020-08-14 16:31:06
【.NET Core项目实战-统一认证平台】开篇及目录索引 上篇文章介绍了 IdentityServer4 的源码分析的内容,让我们知道了 IdentityServer4 的一些运行原理,这篇将介绍如何使用dapper来持久化 Identityserver4 ,让我们对 IdentityServer4 理解更透彻,并优化下数据请求,减少不必要的开销。 .netcore项目实战交流群(637326624),有兴趣的朋友可以在群里交流讨论。 一、数据如何实现持久化 在进行数据持久化之前,我们要了解 Ids4 是如何实现持久化的呢? Ids4 默认是使用内存实现的 IClientStore、IResourceStore、IPersistedGrantStore 三个接口,对应的分别是 InMemoryClientStore、InMemoryResourcesStore、InMemoryPersistedGrantStore 三个方法,这显然达不到我们持久化的需求,因为都是从内存里提取配置信息,所以我们要做到 Ids4 配置信息持久化,就需要实现这三个接口,作为优秀的身份认证框架,肯定已经帮我们想到了这点啦,有个EFCore的持久化实现,GitHub地址 https://github.com/IdentityServer/IdentityServer4.EntityFramework

Springboot 多数据源配置,结合tk-mybatis

纵然是瞬间 提交于 2020-08-14 13:41:21
一、前言 作为一个资深的CRUD工程师,我们在实际使用springboot开发项目的时候,难免会遇到同时使用多个数据库的情况,比如前脚刚查询mysql,后脚就要查询sqlserver。 这时,我们很直观的就会想到,为springboot配置多个数据源,需要用哪个数据库连接,直接@Autowired不就行了。那么问题来了,怎么配置呢? ******************************************************************************************************************************************************************** 退后,我要开始装逼了 ******************************************************************************************************************************************************************** 二、前期工作 1.数据库。 这里我准备了一个mysql数据库和一个sqlserver数据库。 Mysql脚本: DROP TABLE IF EXISTS `tb_user`;

SqlServer查看sql执行历史记录

五迷三道 提交于 2020-08-14 11:58:43
SELECT TOP 1000 QS.creation_time, SUBSTRING(ST.text, (QS.statement_start_offset / 2) + 1, ((CASE QS.statement_end_offset WHEN - 1 THEN DATALENGTH(st.text) ELSE QS.statement_end_offset END - QS.statement_start_offset) / 2) + 1) AS statement_text, ST.text, QS.total_worker_time, QS.last_worker_time, QS.max_worker_time, QS.min_worker_time FROM sys.dm_exec_query_stats QS CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) ST WHERE 1=1 --and QS.creation_time BETWEEN '2017-09-09 10:00:00' AND '2017-09-11 18:00:00' AND ST.text LIKE '%%' ORDER BY QS.creation_time DESC 来源: oschina 链接: https://my.oschina.net

从壹开始前后端分离【 .NET Core2.0/3.0 +Vue2.0 】框架之十一 || AOP自定义筛选,Redis入门 11.1

让人想犯罪 __ 提交于 2020-08-14 08:12:08
本文3.0版本文章 https://mp.weixin.qq.com/s/pjvleNGi_AazZ7COdxQyPQ Redis 部分的内容,和netcore2.0一样,不需要更新。 代码已上传Github+Gitee,文末有地址   书说上文《 从壹开始前后端分离【 .NET Core2.0 Api + Vue 2.0 + AOP + 分布式】框架之十 || AOP面向切面编程浅解析:简单日志记录 + 服务切面缓存 》,昨天咱们说到了AOP面向切面编程,简单的举出了两个栗子,不知道大家有什么想法呢,不知道是否与传统的缓存的使用有做对比了么?   传统的缓存是在Controller中,将获取到的数据手动处理,然后当另一个controller中又使用的时候,还是Get,Set相关操作,当然如果小项目,有两三个缓存还好,如果是特别多的接口调用,面向Service服务层还是很有必要的,不需要额外写多余代码,只需要正常调取Service层的接口就行,AOP结合Autofac注入,会自动的查找,然后返回数据,不继续往下走Repository仓储了。   昨天我发布文章后,有一个网友提出了一个问题,他想的很好,就是如果面向到了Service层,那BaseService中的CURD等基本方法都被注入了,这样会造成太多的代理类,不仅没有必要,甚至还有问题,比如把Update也缓存了

SQL Server 连接数据库报错 (ObjectExplorer)

痞子三分冷 提交于 2020-08-14 07:01:40
报错信息      无法访问数据库 ReportServer。 (ObjectExplorer)   具体错误信息: 程序位置: 在 Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.DatabaseNavigableItem.get_CanGetChildren() 在 Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NavigableItem.RequestChildren(IGetChildrenRequest request) 在 Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ExplorerHierarchyNode.BuildChildren(WaitHandle quitEvent) 错误现象      可以连接数据库服务器,但是无法打开具体的数据库,打开数据库报错,报错信息如上。 错误原因      该用户没有操作该数据库的权限。 解决方案 给数据库加上对应的权限就行了。 具体步骤:           最后记得重启sqlserver 服务。 来源: oschina 链接: https://my.oschina.net/u

解析分页思想+分页实战

廉价感情. 提交于 2020-08-14 06:55:58
一、排除Top分页法(自命名,非规范) 思想:所谓“排除Top分页”,主要依靠“排除”和Top这个两大核心步骤。首先查询当前页码之前的数据,然后将该数据从总数据中排除掉,在从剩下的数据中获取前N条记录,就可以得到当前页码的数据。 举例-分页条件:每页显示2条记录,查看第3页 以SQLServer语法实现并说明步骤:  步骤1:编写基础查询语句并按照字段字段进行排序,排序字段会作为后续的数据筛选条件 1 select * from tableName order by id  步骤2:获取一个公式,该公式用于计算当前页码之前所有页面的总记录数   例子的当前页为第3页,那么在第3页之前有2页,并且每页显示2条,最后可得出之前页面总共为:2乘以2等于4条记录。然后根据逻辑得出计算公式:(当前页码-1)*每页显示条数,根据例子分页条件得出:(3-1)*2  步骤3:使用步骤2的公式加到步骤1语句中作为Top的数值,从而可以查出当前页之前的所有数据。 1   select top (( 3 - 1 ) * 2 ) * from tableName order by id  步骤4:在总数据中排除掉“当前页之前的所有数据”,然后进行排序 1 select * from tableName 2 3 Where id not in ( Select top (( 3 - 1 ) * 2 ) *

SQL Server 全文搜索/全文索引

隐身守侯 提交于 2020-08-13 19:53:50
概述 全文引擎使用全文索引中的信息来编译可快速搜索表中的特定词或词组的全文查询。全文索引将有关重要的词及其位置的信息存储在数据库表的一列或多列中。全文索引是一种特殊类型的基于标记的功能性索引,它是由 SQL Server 全文引擎生成和维护的。生成全文索引的过程不同于生成其他类型的索引。全文引擎并非基于特定行中存储的值来构造 B 树结构,而是基于要编制索引的文本中的各个标记来生成倒排、堆积且压缩的索引结构。 全文索引是针对数据表,只能对表创建全文索引,不能对数据库创建全文索引。 每个数据库可以不包含全文目录或包含多个全文目录,一个全文目录可以包含多个全文索引,但一个全文索引只能用于构成一个全文目录。 一个数据表只能创建一个全文索引,一个全文索引可以包含多个字段。 创建全文索引的表必须要有一个唯一的非空索引,并且这个唯一的非空的索引只能是一个字段,不能是组合字段。 每个表只允许有一个全文索引。 可以对以下类型的列创建全文索引: char 、 varchar 、 nchar 、 nvarchar 、 text 、 ntext 、 image 、 xml 、 varbinary 和 varbinary(max) ,从而可对这些列进行全文搜索。对数据类型为 varbinary 、 varbinary(max) 、 image 或 xml 的列创建全文索引需要您指定类型列

多数据源配置方式

与世无争的帅哥 提交于 2020-08-13 13:42:40
一、pom.xml引入配置包 <!--多数据源配置--> <dependency> <groupId> com.baomidou </groupId> <artifactId> dynamic-datasource-spring-boot-starter </artifactId> <version> 2.2.3 </version> </dependency> 二、yml增加配置 spring : application : name : kzj-erp-bls datasource : # 使用druid数据源 druid : stat-view-servlet : loginUsername : admin loginPassword : 123456 dynamic : datasource : master : url : jdbc:sqlserver://192.168.60.2:1466;DatabaseName=master driver-class-name : com.microsoft.sqlserver.jdbc.SQLServerDriver username : sa password : 123456 druid : #以下均为默认值 initial-size : 3 max-active : 8 min-idle : 2 max-wait : -1