SpringBoot学习:整合JPA

引入依赖

    <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后,可以看到数据库中表被创建出来了
在这里插入图片描述
编写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 插入一条数据
在这里插入图片描述
打开数据库表,可以看到数据插入成功
在这里插入图片描述
访问 http://localhost:8080/user/1 查询id为1的User信息
在这里插入图片描述

发布了33 篇原创文章 · 获赞 9 · 访问量 4804

猜你喜欢

转载自blog.csdn.net/qq_41179691/article/details/104306838
今日推荐