SmartSql 介绍

Posted 阿虎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.Schema 技术图片 技术图片
SmartSql.TypeHandler 技术图片 技术图片
SmartSql.DyRepository 技术图片 技术图片
SmartSql.DIExtension 技术图片 技术图片
SmartSql.Cache.Redis 技术图片 技术图片
SmartSql.ScriptTag 技术图片 技术图片
SmartSql.AOP 技术图片 技术图片
SmartSql.Options 技术图片 技术图片
SmartSql.Bulk 技术图片 技术图片
SmartSql.Bulk.SqlServer 技术图片 技术图片
SmartSql.Bulk.PostgreSql 技术图片 技术图片
SmartSql.Bulk.MySql 技术图片 技术图片

以上是关于SmartSql 介绍的主要内容,如果未能解决你的问题,请参考以下文章

SmartSql Config配置

SmartSql 入门

SmartSql简介

SmartSql 常见问题

SmartSql Map

SmartSql = Dapper + MyBatis + Cache(Memory | Redis) + ZooKeeper + R/W Splitting + ......