作者回复: Hibernate是JPA的一种实现。MyBatis跟JPA没什么关系。JdbcTemplate是让大家能更简单地使用JDBC,把一些模板式的代码包装起来。
作者回复: 你都说了最后执行的是同样的SQL,那SQL的执行耗时上应该是差不多的,然后就是SQL结果集到结果对象的映射开销。其实我个人认为(没有实际测过)没必要在这几个广泛使用的东西上(JPA严格来说是规范,和其他三个不一样)去比较性能,应该都不会太差的。你真要优化性能,减少与数据库的交互是不是比你在这几个里纠结选哪个更实际一些呢。
作者回复: 对于不怎么复杂的项目,我觉得JPA(也就是Hibernate)更简单点。MyBatis对底层SQL的把控度更强一点,更有利于DBA对SQL做优化。如果是大厂,基本都是在主要场景中使用MyBatis的,为了公司统一,这些地方的系统基本也都会用MyBatis。
作者回复: JPA是规范,Hibernate是JPA的一种实现,Spring Data JPA可以帮助大家更方便地使用JPA,它底层用了Hibernate。Hibernate替我们做了ORM的工作,简单的场景中,你并不需要手写SQL。关于这个问题,建议你了解一下Hibernate的基本知识。
作者回复: Spring Boot自己会在Classpath里查找的,它对内嵌数据库做了自动配置,发现了H2的包后,它就知道要配置H2的数据源,这个在后续Spring Boot的章节里会提到的。
作者回复: 不是一回事,Spring Data JDBC是另一层封装了。JdbcTemplate直接就是Spring主项目的。
作者回复: 我一般是直接spring.io上找到对应的项目,进入它的文档后看目录,如果是有特定内容要找,就直接搜关键字,如果目标明确,直接Google就行了。
作者回复: 的确不少互联网公司都是用MyBatis的,但其实如果场景简单,用Hibernate也未尝不可
作者回复: Spring Data JPA是在简化JPA的使用,封装了JPA,如果你是站在这个层面上说它层级高,那我想也对吧
作者回复: 抱歉,我还真没使用过这种方式,你可能需要自己查询一下官方的文档看看有没有什么帮得上的信息了。