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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM