目前在基于Spring Boot/Spring MVC开发的架构,在存储上,一般有两种选择,要么JPA、要么Mybatis,个人对JPA有偏见,不喜欢Hibernate,所以就选了Mybatis,既然基于Mybatis开发,手写SQL是不可少的,对于增删改查,我们会写大量的mapper对应的XML文件,例如:
对每一个插入、删除、查询、修改操作,都要写一大堆对应的SQL,如果是字段比较少还好说,如果一个架构师设计比较变态的表,有百八十个字段,那么程序员将不胜其烦,而且也非常容易出错。当然,现在也有很多快速开发平台,能够自动生成这些SQL,不需要开发人员自己去写,也有一些Mybatis插件,例如Mybatis Plus之类的,也能够自己做类似的事情,不过,一个insert对应Mybatis的一个XML文件的一个方法,也是我不喜欢的,我是一个比较懒的人;其次代码,包括SQL写的越多,出错概率越大,大神也一样。最好一行代码都不写,当然出错概率也就等于0了。
一行代码都不写,当然是开玩笑的话。那么既然是低代码开发,如何做到尽量少写增加、删除、修改、查询SQL呢?查询目前我还做不到不写,因为查询太个性化了,尤其是报表;增加、删除、修改这三种操作,通过架构,我还是可以做到零代码的。零代码的机制就是通过Mybatis主持SQL注入这个特性。我们可以写四种基本操作的框架底子:
find:对应查询单条记录,query对应查询多条记录,insert、update、remove分别对应增加、修改、删除操作。写完这个基本的mapper,我们就再也不需要写任何其他Mapper了,所有业务的的增删改查,对应这一个基类mapper 就可以了,所有的SQL动态注入到Mapper就可以了。
那么,虽然是动态注入,mapper不用写了,insert、update、remove这三种操作不还是一样需要写sql语句吗?只是换了一个地方而已?这里,我做了一个通过entity自动生成insert、delete、update的sql的工具类,然后再把自动生成的SQL动态注入到Mapper。这样,我们就不用再关注恼人的一个操作,必须写一个mapper对应的SQL了。对应的DAO如下所示:
近期我也会把这段代码开源,会放在github和gitee上,github地址如下:https://github.com/dajiaoyun ,目前还没放上去,欢迎关注。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/9680.html