最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】Spring Boot中操作MySQL的几种方式

MySQL crifan 1036浏览 0评论
折腾:
【未解决】spring boot中添加访问操作mysql数据库
期间,
看到
Getting Started · Accessing data with MySQL
有说访问数据库的方式有两种
  • Spring Data JPA
  • plain Spring JDBC
去看看区别
spring jdbc vs spring data jpa
java – JPA vs Spring JdbcTemplate – Stack Overflow
Spring Data JDBC / Spring Data JPA vs Hibernate – Stack Overflow
Spring DAO vs Spring ORM vs Spring JDBC – Stack Overflow
How is Spring Data JDBC different from Spring Data JPA? – Quora
后记:
【未解决】Spring Boot中JPA中指定生成MySQL表结构的Charset和Encoding以及Collation
参考
31.3 JPA and Spring Data JPA
The Java Persistence API is a standard technology that lets you “map” objects to relational databases. The spring-boot-starter-data-jpa POM provides a quick way to get started. It provides the following key dependencies:
  • Hibernate: One of the most popular JPA implementations.
  • Spring Data JPA: Makes it easy to implement JPA-based repositories.
  • Spring ORMs: Core ORM support from the Spring Framework.
【总结】
Java持续化API是一种标准的技术,用于把对象映射到关系数据库
spring-boot-starter-data-jpa提供了一个快速的启动方式
下面是关键的依赖:
  • Hibernate: 最流行的一种JPA实现
  • Spring Data JPA: 让基于JPA的实现更加简单
  • Spring ORMs: Spring框架中核心的ORM支持
下面是几种对比:
JdbcTemplate vs JPA
  • JdbcTemplate:更底层,直接,灵活性高
  • JPA:确保你的database schema准确的映射到domain model
    • 把复杂的事情帮你隐藏了
    • 面向对象
    • 感觉类似于:Python中的ORM层,比如SQLAlchemy
以及:
和Spring相关的操作MySQL的方式
  • Spring-DAO
    • 严格意义上,不是Spring的项目
    • 加备注:@Repository
      • 底层异常会传到:JDBC, Hibernate, JPA等
        • 最终转成DataAccessException
  • Spring-JDBC
    • 提供了类:JdbcTemplate
      • 需要配置:DataSource
    • 作用:帮你生成sql,让你专注业务
    • 也支持了:JdbcDaoSupport
  • Spring-ORM
    • 集成的项目,包含众多数据持续化的技术persistence technologies
      • JPA
      • JDO
      • Hibernate
      • iBatis
    • 方式:把DataSource bean放到SessionFactory或EntityManagerFactory
      • 对比:JDBC无需此操作,只需依赖于DataSource
    • 注:如果你打算用ORM(JPA或Hibernate等),则只需用Spring-ORM,而无需用Spring-JDBC
  • Spring-Data
    • 也不是Spring的项目
    • 集成的项目,提供了一个统一的API,去访问数据
    • 方式:DAO+annotations
    • 支持:SQL和NoSQL
    • 侧重与:NoSQL

转载请注明:在路上 » 【已解决】Spring Boot中操作MySQL的几种方式

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
82 queries in 0.174 seconds, using 22.11MB memory