工作這些年,辛苦收集了很多源碼,很多都是商業源碼,拿來就能用,私活利器,如有需要請點擊文章末尾的“瞭解更多”鏈接。
上一篇文章給大家詳細的講解了反射是用來幹什麼的,並演示了一個簡單的應用,點擊鏈接可以看到哦!C#及JAVA等語言的反射機制有啥用,是用鏡子反射太陽光玩麼(一)
這次我們來給大家看兩個比較稍微難點並且應用很廣泛的案例,對降低模塊之間的耦合度和提升代碼的可維護性有非常大的幫助哦!
下面看看下面這條sql,這是一個參數化的插入語句,
這是一個參數化的插入Sql,如果表字段比較少,那這麼寫還好,但是如果很多,而且表字段不固定,那麼這麼寫就不靈活了。如果每次增減列名後還要去改sql中的列名和參數就太不方便了,改動少還好,如果改動太大,比如增加了100個列,修改了50個列的名字,那就會死人的,
下面通過運用反射來動態生成Sql,請大家看看
首先聲明一個實體類Temp,注意屬性名必須與數據庫列名吻合:
再寫入兩個方法,兩個方法都差不多,都是獲取屬性後循環拼接字符串:
引用:
最後sql字符串就生成為“ Insert into Temp(UserID,UserName,Age,WorkType) Values(@UserID,@UserName,@Age,@WorkType)”
就這樣,無論怎麼改動,sql都能按需自動生成,是不是很方便呢?