SmartSql 介绍

SmartSql介绍

SmartSql = MyBatis + Cache(Memory | Redis) + R/W Splitting +Dynamic Repository + Diagnostics ......

她是如何工作的?

SmartSql 借鉴了MyBatis的思想,使用XML来管理SQL,并且提供了若干个筛选器标签来消除代码层面的各种if/else的判断分支。

SmartSql将管理你的SQL,并且通过筛选标签来维护本来你在代码层面的各种条件判断,使你的代码更加优美。

同时SmartSql还提供了以下各种特性(包括但不限于):

  • 动态代理仓储
  • 分布式缓存
  • 类型处理器
  • 自动生成 CUD 代码
  • Id生成器
  • 性能诊断
  • AOP 级别的事物
  • 缓存(内存,分布式缓存)
  • 读写分离
  • 代码生成器(https://github.com/dotnetcore/SmartCode)
  • 高性能的批量插入

为什么选择SmartSql?

DotNet 体系下大都是Linq系的ORM,Linq很好,消除了开发人员对SQL的依赖。但却忽视了一点,SQL本身并不复杂,而且在复杂查询场景当中开发人员很难通过编写Linq来生成良好性能的SQL,相信使用过EF的同学一定有这样的体验:“我想好了Sql怎么写,然后再来写Linq,完了可能还要再查看一下Linq输出的Sql是什么样的“。这是非常糟糕的体验。要想对Sql做绝对的优化,那么开发者必须对Sql有绝对的控制权。另外Sql本身很简单,为何要增加一层翻译器呢?

那么为什么不是Dapper,或者DbHelper?

Dapper 确实很好,并且又很好的性能,但是会让给你的代码里边充斥着SQL和各种判断分支,这些将会使代码维护难以阅读和维护。另外 Dapper 只提供了DataReader到Entity的反序列化功能。而SmartSql提供了大量的特性来提升开发者的效率。

Nuget Packages

Package

NuGet Stable

Downloads

SmartSql

SmartSql

SmartSql

SmartSql.Schema

SmartSql.Schema

SmartSql.Schema

SmartSql.TypeHandler

SmartSql.TypeHandler

SmartSql.TypeHandler

SmartSql.DyRepository

SmartSql.DyRepository

SmartSql.DyRepository

SmartSql.DIExtension

SmartSql.DIExtension

SmartSql.DIExtension

SmartSql.Cache.Redis

SmartSql.Cache.Redis

SmartSql.Cache.Redis

SmartSql.ScriptTag

SmartSql.ScriptTag

SmartSql.ScriptTag

SmartSql.AOP

SmartSql.AOP

SmartSql.AOP

SmartSql.Options

SmartSql.Options

SmartSql.Options

SmartSql.Bulk

SmartSql.Bulk

SmartSql.Bulk

SmartSql.Bulk.SqlServer

SmartSql.Bulk.SqlServer

SmartSql.Bulk.SqlServer

SmartSql.Bulk.PostgreSql

SmartSql.Bulk.PostgreSql

SmartSql.Bulk.PostgreSql

SmartSql.Bulk.MySql

SmartSql.Bulk.MySql

SmartSql.Bulk.MySql

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )

SmartSql 介绍 - HelloWorld