折腾:
【未解决】spring boot中添加访问操作mysql数据库
期间,
看到
有说访问数据库的方式有两种
- Spring Data JPA
- plain Spring JDBC
去看看区别
spring jdbc vs spring data jpa
后记:
【未解决】Spring Boot中JPA中指定生成MySQL表结构的Charset和Encoding以及Collation
参考
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的几种方式