一、编写一个实体类(Bean)和数据表进行映射,并配置好映射关系

    1. // 使用JPA注解配置映射关系
    2. @Entity // 告诉JPA这是一个实体类(和数据表映射的类)
    3. @Table(name = "person_jpa") // 指定和哪个数据表对应,如果省略默认表名就是类名
    4. public class Person {
    5. @Id // 这是一个主键
    6. @GeneratedValue(strategy = GenerationType.IDENTITY) // 设置自增
    7. private Integer id;
    8. @Column(name = "last_name",length = 50) // 这是和数据表对应的一个列,长度为50
    9. private String lastName;
    10. @Column // 省略默认列名就是属性名
    11. private Float email;
    12. // 省略gat 和 set
    13. }

    二、编写要给Dao接口来操作实体类对应的数据表(Repository)

    1. // 继承JpaRepository来完成对数据库的操作,自带CRUD功能和分页排序等功能
    2. public interface PersonRepository extends JpaRepository<Person, Integer> {
    3. }

    三、基本的配置JpaProperties

    1. spring:
    2. datasource:
    3. url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8
    4. username: root
    5. password: root
    6. driver-class-name: com.mysql.cj.jdbc.Driver
    7. spring:
    8. jpa:
    9. hibernate:
    10. ddl-auto: update ## 项目启动后,更新或者创建实体类对应的数据表结构
    11. show-sql: true ## 控制台打印sql

    四、编写Controller测试

    1. @RestController
    2. public class PersonController {
    3. @Autowired
    4. public PersonRepository personRepository;
    5. @GetMapping("getPerson/{id}")
    6. public Person getPersonById(@PathVariable(name = "id") Integer id){
    7. Optional<Person> person = personRepository.findById(id);
    8. return person.isPresent() ? person.get() : null;
    9. }
    10. @GetMapping("insertPerson")
    11. public Person insertPerson(Person person){
    12. Person save = personRepository.save(person);
    13. return save;
    14. }
    15. }