我封裝了這么個類庫后,每天只上半天班。。。

封裝這個sql自動生成的類庫目的是,之前項目數據庫中的數據表字段非常多,本人既不喜歡寫存儲過程,又厭煩這些繁多的數據表字段,經常在寫T-SQL語句的時候,忘記都有哪些字段,遇到多次后感覺心很累。并且蛋疼的是數據庫的操作頻繁而且還不能略過。

所以本著與其每次都痛苦不如只痛苦一次的原則,我這幾天封裝了這樣的項目給自己用,連同事也不給。

這個東西不干別的,就是用來生成日常開發所需的SQL語句,以及將執行結果封裝成泛型集合列表。

還有項目是基于.NET 寫的,數據庫是SQLserver 2016。

項目和使用方法介紹

項目總覽

目前該項目還是第一個版本,有一些功能實現起來還是不太靈活和嚴謹,沒辦法自己也懶得寫,只好將就著用吧。這里每一個項目做一個簡單的介紹:

  1. Attributes類庫項目:特性標記類庫,根據該標記生成Sql語句;
  2. DBProcess類庫項目:對外調用實現功能項目;
  3. Modll類庫項目:模型實體項目;
  4. OtherToolLib類庫項目:底層苦力類庫,承載具體實現;
  5. WebSite1網站項目:這個就沒有太多要求,純html網頁都是可以得。

由于項目涉及的實用場景比較多,這里我就舉一個查詢學生名單的案例。

1):在模型類庫中添加實體類:

student 模型類

2):創建對應數據庫表:

student數據表

測試的時候,字段少點就少點,我也實在是懶得寫了,其實無論有多少個字段都無所謂的。

3):模型類添加特性標記:

添加特性標記

特性標記有好幾種,大體上分為類標記和屬性標記,都是用來標記對應的數據表名稱和數據表的字段名稱。
務必要和數據表對應起來,也就是名字要寫對。
剩下的join、分頁、查找之類的操作都由系統完成。

4):調用方法:
框架在設計的時候,唯一遵循的核心思想就是:不管你內部實現起來怎么惡心,我調用的時候一定要簡單。

具體調用實現

圖有點太大了,還好基本不影響查看。

這里實現了兩個功能:一個是數據庫(student數據表)查詢,一個是插入新數據到student數據表中。

之前說到對于數據表沒有要求,主要的支撐點是泛型技術的運用。

有一個注意點:分頁查詢的時候,需要我們自定義一個Page對象,而不是用數值參數來傳遞。

分頁Page類

調用方法的時候,我們需要先構建一個分頁模型對象,這個數據來源基本上是前端傳遞來的相關數據,那么應該顯示第幾頁由系統進行計算。

當然我這里只是傳遞了一個匿名的分頁對象,這么做,系統會默認只顯示第一頁的內容,也就是第一頁,20個項目數據。

運行結果

沒有制作網頁,這里只貼上斷點輸出的sql結果,sql語句對了,剩下的數據庫操作基本上就能完成。
1): 帶有where條件SQL


2): 分頁查詢SQL
分頁sql語句自動生成

3):插入數據庫表


數據表插入

按照正常的項目流程來說,數據表Key鍵應該是自增的,也就是不在sql語句里面進行指定,然而本例數據表設計有缺陷,我沒有指定Key自增公式,將就看一下吧,只需要在模型類的自增主鍵屬性上面加上[NonInsertAttribute(true)]這樣的特性就能自動識別在生成插入語句的時候,略過該屬性對應的數據庫字段。

涉及的一些基礎技術

本框架其實也沒設計什么高深的技術,無非就是字符串的拼接操作。如果有,可能也就是下面提到的這些點:

  1. Attribute特性;
  2. 反射;
  3. 泛型;
  4. 委托。

本項目還不太完善,但是針對數據庫增刪改查需求還是可以減少相當一部分的工作量。
總的來說想要實現不同的sql語句組合,關鍵點在于Attribute特性類的標記要使用正確,當然有一些SQL沒有自己寫來的靈活和方便,如何選擇就在于我們具體的項目需求。

每天擠公交車已經很煩了,總得在工作上讓自己輕松點。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容