牛腩——SQLhelper
前言
機房重構的時候用到了sqlhelper,現在學習牛腩又重新接觸到了sqlhelper。機房的時候知道slqherlper要寫4個方法,一個查詢的,一個增刪改的,這兩個都分帶參數和不帶參數兩種情況。但是沒有想過為什么每個方法要傳一個string類型的語句,一個類型,和參數。這次牛腩老師展示了sqlhelper從初級到一步步重構成完美助手類的過程。
Step 1: SQL and Connection
其實sqlhelper就是把D層每個方法都要連接數據庫,到數據庫里執行增刪查改的基礎操作給抽象出一個類。符合面向對象的思想。
能使sql運行起來最基礎,最簡陋 ,最本質的東西就是建好connection連接并打開,寫好sql語句,并把這兩個東西當做參數傳給一個叫SqlCommand的鬼東西。
Step 2: 改造Connection
把Connection寫到構造函數里
sqlhelper里的四個方法都要創建connetion連接并打開。在vb.net中可以把這些公共用到的東西寫到類的最開始,在C#里讓類初始化的時候就執行的東西需要寫到構造函數里。
把打開connection寫成一個方法,就像單例一樣,保證在connection沒有打開的情況下打開connection。
加入配置文件
進一步解耦,把connectionstring 寫到web的config里面。
改過后的SQLhelper
public class SQLHelper{#region 構造函數初始化命令字符串,并應用配置文件//構造函數初始化命令字符串,并應用配置文件private SqlConnection conn = null;private SqlCommand cmd = null;private SqlDataReader sdr = null;public SQLHelper(){string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;SqlConnection conn = new SqlConnection(connStr);}Step3: 改造sql
之前傳入這四個方法的就是一個sql語句。sql用拼接字符串容易造成sql注入,所以sql里要加入參數SQLParameter。此外,D層傳入不僅知識sql語句也可以是存儲過程,所以這四個方法還要加入一個參數就是commandtype。
補充-關閉連接
除了上面的try catch 方法,在查詢方法中可以用using來關閉connection 。
小結
看了牛腩,像是觀看了丑小鴨變天鵝的一個過程。一開始的代碼肯定是以實現主要功能為主,小鴨雖丑,五臟俱全;然后就是一步步的整容了,就變成白天鵝了。(總結出一條真理:重構就是整容。)
總結
以上是生活随笔為你收集整理的牛腩——SQLhelper的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java dsa加密与解密_Java D
- 下一篇: 2020电子设计大赛E题复盘