Spring Boot 快速上手 JPA
非原创,原文地址https://github.com/CodingDocs/springboot-guide/blob/master/docs/basis/springboot-jpa.md JPA 这部分内容上手很容易,但是涉及到的东西还是挺多的,网上大部分关于 JPA 的资料都不是特别齐全,大部分用的版本也是比较落后的。另外,我下面讲到了的内容也不可能涵盖所有 JPA 相关内容,我只是把自己觉得比较重要的知识点总结在了下面。我自己也是参考着官方文档写的,官方文档非常详细了,非常推荐阅读一下。这篇文章可以帮助对 JPA 不了解或者不太熟悉的人来在实际项目中正确使用 JPA。 项目代码基于 Spring Boot 最新的 2.1.9.RELEASE 版本构建(截止到这篇文章写完),另外,新建项目就不多说了,前面的文章已经很详细介绍过。 1.相关依赖 我们需要下面这些依赖支持我们完成这部分内容的学习: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> 2.配置数据库连接信息和JPA配置 由于使用的是 h2 内存数据库,所以你直接运行项目数据库就会自动创建好。 下面的配置中需要单独说一下 spring.jpa.hibernate.ddl-auto=create这个配置选项。 这个属性常用的选项有四种: create:每次重新启动项目都会重新创新表结构,会导致数据丢失 create-drop:每次启动项目创建表结构,关闭项目删除表结构 update:每次启动项目会更新表结构 validate:验证表结构,不对数据库进行任何更改 但是,一定要不要在生产环境使用 ddl 自动生成表结构,一般推荐手写 SQL 语句配合 Flyway 来做这些事情。 # 数据库url地址 spring.datasource.url=jdbc:h2:mem:jpa-demo spring.datasource.username=root spring.datasource.password=123456 spring.datasource.platform=h2 spring.datasource.driverClassName =org.h2.Driver spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true # 打印出 sql 语句 spring.jpa.show-sql=true spring.jpa.hibernate.ddl-auto=update spring.jpa.open-in-view=false server.port=8080 #H2控制台 spring.h2.console.enabled=true 3.实体类 我们为这个类添加了 @Entity 注解代表它是数据库持久化类,还配置了主键 id。 ...