常见的数据访问的写法大概有以下几种: Native SQL JPQL Criteria API Spring Data JPA 其他框架(jooq、MyBatis等) Native SQL Native SQL 算是最简单,也最直观的使用方法了。EntityManger是JSR标准里面提供的,所以不需要依托任何框架就可以使用。 JPQL JPQL跟Native SQL相比,其实也是大同小异。只是把select部分省略了。 Criteria API Criteria API 其实功能很强大,但是就是写起来太复杂。理解起来也比较费劲。在项目中实际使用的其实很少。 Spring Data