当前位置:   article > 正文

spring JPA整合hibernate,IDEA社区版,Java_idea community jpa

idea community jpa

spring JPA整合hibernate,IDEA社区版,Java

本文基于IDEA社区版,不是IDEA企业版。

(1)首先用IDEA新建一个spring web项目。参考文章:

IDEA社区版(Community Edition)创建Springboot-Web项目,Java_zhangphil的博客-CSDN博客除了可以通过application.yml文件配置MyApp外,也可以通过application.properties配置,application.properties与application.yml配置写法不同。特别注意,如果resources下面同时存在application.yml和application.properties两个配置文件,那么application.properties里面的配置将覆盖application.yml的配置。(3)在main目录下建立项目的代码包(目录层次结构)https://zhangphil.blog.csdn.net/article/details/126894920

(2)pom.xml添加引用:

  1. <parent>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-parent</artifactId>
  4. <version>2.7.4</version>
  5. </parent>
  6. <dependencies>
  7. <dependency>
  8. <groupId>org.springframework.boot</groupId>
  9. <artifactId>spring-boot-starter-data-jpa</artifactId>
  10. </dependency>
  11. <dependency>
  12. <groupId>org.hibernate.orm</groupId>
  13. <artifactId>hibernate-core</artifactId>
  14. <version>6.1.3.Final</version>
  15. </dependency>
  16. <dependency>
  17. <groupId>org.springframework.boot</groupId>
  18. <artifactId>spring-boot-starter-web</artifactId>
  19. </dependency>
  20. <dependency>
  21. <groupId>mysql</groupId>
  22. <artifactId>mysql-connector-java</artifactId>
  23. </dependency>
  24. </dependencies>
  25. <build>
  26. <plugins>
  27. <plugin>
  28. <groupId>org.springframework.boot</groupId>
  29. <artifactId>spring-boot-maven-plugin</artifactId>
  30. </plugin>
  31. </plugins>
  32. </build>

(3)在resources下面的application.properties里面写入配置,如果application.properties不存在,新建application.properties:

  1. spring.datasource.url=jdbc:mysql://localhost:3306/db_demo?useSSL=false&allowPublicKeyRetrieval=true&allowMultiQueries=true&serverTimezone=UTC
  2. spring.datasource.username=root
  3. spring.datasource.password=123456
  4. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
  5. spring.jpa.hibernate.ddl-auto=update
  6. spring.jpa.show-sql=true
  7. spring.jpa.properties.hibernate.format_sql=true
  8. spring.jpa.properties.hibernate.generate_statistics=false

(4)在本机上启动mysql数据库。启动端口在3306,参考文章:

mysql数据库环境配置和安装启动,Windows_zhangphil的博客-CSDN博客先下载mysql的zip压缩包:MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/下载解压后,配置my.ini文件,放到mysql的程序目录里面,my.ini文件:[mysqld]port=3306basedir=D:\mysql\mysql-8.0.27-winx64datadir=D:\mysql\data[client] port=3306default-character-shttps://blog.csdn.net/zhangphil/article/details/122414377启动mysql后,创建一个名为 db_demo 的数据库(对应(3)中的数据库链接url里面数据库名字)

把账号root的密码改成(3)中的相同,本例是123456。参考:

mysql数据库重置root用户名和密码_zhangphil的博客-CSDN博客先下载mysql的zip压缩包:MySQL :: Download MySQL Community Serverhttps://dev.mysql.com/downloads/mysql/下载解压后,配置my.ini文件,放到mysql的程序目录里面,my.ini文件:[mysqld]port=3306basedir=D:\mysql\mysql-8.0.27-winx64datadir=D:\mysql\data[client] port=3306default-character-s。https://blog.csdn.net/zhangphil/article/details/126688161

命令:

mysql -uroot -p123456

登录mysql数据库,创建db_demo:

  1. create database db_demo;
  2. show databases;

(5)在IDEA开发工具的左下角打开JPA Structure,新建一个JPA的实体User

 

再新建一个Spring Data Repository,名字可以取为UserRepository。

 

此时的main/java/test代码包里面有User.java和UserRepository.java,

  1. import org.springframework.data.jpa.repository.JpaRepository;
  2. import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
  3. public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificationExecutor<User> {
  4. }

在IDEA自动生成的代码基础上补全User.java,根据自己的需要添加字段(name和age是自己添加的):

  1. import javax.persistence.*;
  2. @Entity
  3. @Table(name = "user")
  4. public class User {
  5. @Id
  6. @GeneratedValue(strategy = GenerationType.AUTO)
  7. @Column(name = "id", nullable = false)
  8. private Long id;
  9. public Long getId() {
  10. return id;
  11. }
  12. public void setId(Long id) {
  13. this.id = id;
  14. }
  15. private String name;
  16. public int age;
  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. }

新建一个UserController,这个类主要为了测试往数据库写数据(不重要,和JPA无关,仅作数据添加):

  1. import org.springframework.beans.factory.annotation.Autowired;
  2. import org.springframework.web.bind.annotation.GetMapping;
  3. import org.springframework.web.bind.annotation.RestController;
  4. @RestController
  5. public class UserController {
  6. @Autowired
  7. private UserRepository userRepository;
  8. @GetMapping(path = "/add")
  9. public User addUser() {
  10. User user = new User();
  11. user.setName("zhang");
  12. user.setAge(18);
  13. User save = userRepository.save(user);
  14. return save;
  15. }
  16. }

启动的main application类:

  1. import org.springframework.boot.SpringApplication;
  2. import org.springframework.boot.autoconfigure.SpringBootApplication;
  3. import org.springframework.context.ConfigurableApplicationContext;
  4. @SpringBootApplication
  5. public class Main {
  6. public static void main(String[] args) {
  7. ConfigurableApplicationContext context = SpringApplication.run(Main.class, args);
  8. }
  9. }

(6)最终的项目代码结构为:

(7)以上完成后,启动Main.java,日志输出部分内容为:

spring jpa自动连接Mysql数据库创建user表结构。此时在mysql执行命令查看JPA对mysql的写的表:

  1. use db_demo;
  2. show tables;
  3. describe user;

说明JPA正常工作了。

 (8)此时在浏览器访问 localhost:8080/add

 在mysql控制台查看JPA是否真正写入了mysql数据:

JPA写入成功。

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

闽ICP备14008679号