欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

SpringBoot学习:整合JPA

程序员文章站 2022-04-22 08:02:35
...

引入依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

配置数据源

spring:
  datasource:
    url: jdbc:mysql://192.168.1.14:3306/jpa
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
    

编写一个实体类User

private Integer id;
private String name;
private String email;

使用JPA注解将实体类标注

// 使用JPA注解配置映射关系
@Entity //告诉JPA这是一个实体类(和数据表映射的类)
@Table(name = "tb1_user") //告诉JPA这个实体类和数据库中的那个表映射;如果省略表名就是类名小写(user)
public class User {

    @Id //id是主键
    @GeneratedValue(strategy = GenerationType.IDENTITY)  //主键自增
    private Integer id;

    @Column(name = "last_name",length = 50) //这是和数据表对应的一个列;数据表中属性名是last_name,字符长度为50
    private String name;
    @Column // 省略默认列名就是属性名
    private String email;

编写UserRepository

// 继承JpaRepository来完成对数据库的操作
// 泛型中第一个参数为实体类,第二个参数为主键
public interface UserRepository extends JpaRepository<User,Integer> { 
  
}

JPA相关配置

spring:
  jpa:
    hibernate:
      ddl-auto: update #定义数据表的生成策略 update:更新或者创建数据表
    show-sql: true    # 再控制台显示sql语句

启动springboot后,可以看到数据库中表被创建出来了
SpringBoot学习:整合JPA
编写controller测试

@RestController
public class UserController {

    @Autowired
    UserRepository userRepository;

    @GetMapping("/user/{id}")
    public User getUser(@PathVariable("id") Integer id){
        Optional<User> byId = userRepository.findById(id);
        User user = byId.orElse(null);
        return user;
    }

    @GetMapping("/user")
    public User insertUser(User user){
        User save = userRepository.save(user);
        return save;
    }

}

访问 http://localhost:8080/user?lastName=zhangsan&email=aa 插入一条数据
SpringBoot学习:整合JPA
打开数据库表,可以看到数据插入成功
SpringBoot学习:整合JPA
访问 http://localhost:8080/user/1 查询id为1的User信息
SpringBoot学习:整合JPA

相关标签: springboot