当前位置:   article > 正文

spring boot jpa 访问 mysql

springboot jpa 读取mysql

spring boot 访问 mysql
方式二:spring data jpa

为什么使用 jpa :
第一次使用 Spring JPA 的时候,感觉这东西简直就是神器,几乎不需要写什么关于数据库访问的代码一个基本的 CURD 的功能就出来了。

如何使用:
在 pom 文件中引入依赖

  1. <!--jpa -->
  2. <dependency>
  3. <groupId>org.springframework.boot</groupId>
  4. <artifactId>spring-boot-starter-data-jpa</artifactId>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.springframework.data</groupId>
  8. <artifactId>spring-data-commons</artifactId>
  9. <version>2.1.6.RELEASE</version>
  10. </dependency>
  11. <!-- mysql驱动 -->
  12. <dependency>
  13. <groupId>mysql</groupId>
  14. <artifactId>mysql-connector-java</artifactId>
  15. </dependency>

配置数据库:

  1. spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
  2. spring.datasource.username=root
  3. spring.datasource.password=root
  4. spring.datasource.driver-class-name=com.mysql.jdbc.Driver
  5. # JPA 相关配置
  6. spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect
  7. spring.jpa.show-sql=true
  8. spring.jpa.hibernate.ddl-auto=update

JPA 相关配置

#在 SrpingBoot 2.0 版本中,Hibernate 创建数据表的时候,默认的数据库存储引擎选择的是 MyISAM (之前是 InnoDB)。这个参数是在建表的时候,将默认的存储引擎切换为 InnoDB 用的。

spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect

配置在日志中打印出执行的 SQL 语句信息。

spring.jpa.show-sql=true

每次运行程序,没有表格会新建表格,表内有数据不会清空,只会更新

spring.jpa.hibernate.ddl-auto=update

创建 Entity Dao Service Controller 三层文件:

  1. entity:
  2. @Entity
  3. @Table(name = "user")
  4. public class JpaUser {
  5. @Id
  6. @GeneratedValue
  7. private Long id;
  8. private String name;
  9. private int age;
  10. private String sex;
  11. public Long getId() {
  12. return id;
  13. }
  14. public void setId(Long id) {
  15. this.id = id;
  16. }
  17. public String getName() {
  18. return name;
  19. }
  20. public void setName(String name) {
  21. this.name = name;
  22. }
  23. public int getAge() {
  24. return age;
  25. }
  26. public void setAge(int age) {
  27. this.age = age;
  28. }
  29. public String getSex() {
  30. return sex;
  31. }
  32. public void setSex(String sex) {
  33. this.sex = sex;
  34. }

}

Dao
写一个接口 继承 JpaRepository 简单的 CRUD 可以直接使用了

  1. @Repository
  2. public interface JpaUserDao extends JpaRepository<JpaUser,Long> {
  3. }
  4. Service
  5. @Service
  6. public class JpaUserService {
  7. @Autowired
  8. JpaUserDao userDao;
  9. public JpaUser add(JpaUser user){
  10. return userDao.save(user);
  11. }
  12. public JpaUser update(JpaUser user){
  13. return userDao.save(user);
  14. }
  15. public JpaUser getById(long id){
  16. return userDao.findById(id).get();
  17. }

}

Controller

  1. @RestController
  2. @RequestMapping("/jpaUser")
  3. public class JpaUserController {
  4. @Autowired
  5. JpaUserService userService;
  6. @RequestMapping(value = "/add",method = RequestMethod.POST)
  7. public Object addUser(@RequestBody JpaUser user){
  8. return userService.add(user);
  9. }
  10. @RequestMapping(value = "/update",method = RequestMethod.PUT)
  11. public Object updateUser(@RequestBody JpaUser user){
  12. return userService.update(user);
  13. }
  14. @RequestMapping(value = "/find",method = RequestMethod.GET)
  15. public Object updateUser(long id){
  16. return userService.getById(id);
  17. }

}

完成 启动 访问测试

jpa 配置说明:

spring.jpa.hibernate.ddl-auto=create ----每次运行该程序,没有表格会新建表格,有表会删除表重新创建表

spring.jpa.hibernate.ddl-auto=create-drop ----每次程序结束的时候会清空表

spring.jpa.hibernate.ddl-auto=update ----每次运行程序,没有表格会新建表格,表内有数据不会清空,只会更新表结构

spring.jpa.hibernate.ddl-auto=validate ----运行程序会校验数据与数据库的字段类型是否相同,不同会报错

转载于:https://blog.51cto.com/5013162/2403086

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/954901
推荐阅读
相关标签
  

闽ICP备14008679号