由面试所引发的对JPA/Hibernate和MyBatis的争论

这是java业界的衔接数据库的最流行的架构,如果一起否定,必然引起一片口水战。

对于复杂的业务逻辑,JPA/Hibernate应付起来比较容易陷入别扭和不够优雅。这句话放到MyBatis一样适用。

对于复杂的应用,MyBatis在配置文件中提供了拼接sql语句的功能,那么重点就在于此。

拼接sql属于业务逻辑范畴,MyBatis在XML配置文件中实现业务逻辑,在本该仅仅保存数据的XML文本中实现算法,无论如何都不是事情该有的模样。

这个问题我一直都在思索,这几天面试屡屡和面试官在面试过程中触及到。但都未深入,或许面试官对此不感兴趣,或许面试官并未过多思考这个问题。

这就是我一直不用ORM或者MyBatis的原因,我都是用自己实现的中间件。

我认为对于我即将接手(已经拿到offer)的略大略复杂项目,应该 将获取sql语句的业务逻辑封装为一组接口,而接口的具体实现单独打包灵活插接。实现解耦并顺带实现跨数据库。

顺带发个牢骚
请不要用不太涉足过软件架构的程序员来面试打算应聘涉及架构岗位的应聘者。这是对求职者的不尊重。
请不要用极为初级的基础知识笔试试卷来考察应聘者的软件架构水平,尤其是涉及具体框架,因为对于具体某种应用场景,这个世界上可能有无数精妙无比的替代架构方案,而我们可能从来未曾听说,而每个程序员都有他自己的对软件架构的或优雅或笨拙的理解。很可能的情况是,笔试所考察的框架对于应聘者来说可能已经在很多年前就摒弃和没再使用过。
对于以上情况,我希望以后如果在面试中遇到,我转身就走。


具体架构思路
我的java web架构方案 http://afadgaeg.iteye.com/admin/blogs/2395132
在文章的后半部分

最新相关阅读:
用户分组权限管理模块的设计 http://afadgaeg.iteye.com/blog/2395507

猜你喜欢

转载自afadgaeg.iteye.com/blog/2395506