C#及JAVA等语言的反射机制,用来灵活生成sql和调用类方法太爽了

工作这些年,辛苦收集了很多源码,很多都是商业源码,拿来就能用,私活利器,如有需要请点击文章末尾的“了解更多”链接。

上一篇文章给大家详细的讲解了反射是用来干什么的,并演示了一个简单的应用,点击链接可以看到哦!C#及JAVA等语言的反射机制有啥用,是用镜子反射太阳光玩么(一)

这次我们来给大家看两个比较稍微难点并且应用很广泛的案例,对降低模块之间的耦合度和提升代码的可维护性有非常大的帮助哦!

下面看看下面这条sql,这是一个参数化的插入语句,

这是一个参数化的插入Sql,如果表字段比较少,那这么写还好,但是如果很多,而且表字段不固定,那么这么写就不灵活了。如果每次增减列名后还要去改sql中的列名和参数就太不方便了,改动少还好,如果改动太大,比如增加了100个列,修改了50个列的名字,那就会死人的,

下面通过运用反射来动态生成Sql,请大家看看

首先声明一个实体类Temp,注意属性名必须与数据库列名吻合:

再写入两个方法,两个方法都差不多,都是获取属性后循环拼接字符串:

获取所有属性名称并拼接列字符串

获取所有属性名称并拼接列字符串

引用:

最后sql字符串就生成为“ Insert into Temp(UserID,UserName,Age,WorkType) Values(@UserID,@UserName,@Age,@WorkType)”

就这样,无论怎么改动,sql都能按需自动生成,是不是很方便呢?

工作这些年,辛苦收集了很多源码,很多都是商业源码,拿来就能用,私活利器,如有需要请点击文章末尾的“了解更多”链接。