添加依赖

  1. <dependency>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-data-jpa</artifactId>
  4. </dependency>

配置文件

  1. spring:
  2. datasource:
  3. url: jdbc:mysql://localhost:3306/mytest
  4. type: com.alibaba.druid.pool.DruidDataSource
  5. username: root
  6. password: root
  7. driver-class-name: com.mysql.jdbc.Driver //驱动
  8. jpa:
  9. hibernate:
  10. ddl-auto: update //自动更新
  11. show-sql: true //日志中显示sql语句

jpa.hibernate.ddl-autohibernate的配置属性,其主要作用是:自动创建、更新、验证数据库表结构。该参数的几种配置如下:

  • create:每次加载hibernate时都会删除上一次的生成的表,然后根据你的model类再重新来生成新表,哪怕两次没有任何改变也要这样执行,这就是导致数据库表数据丢失的一个重要原因。
  • create-drop:每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除。
  • update:最常用的属性,第一次加载hibernate时根据model类会自动建立起表的结构(前提是先建立好数据库),以后加载hibernate时根据model类自动更新表结构,即使表结构改变了但表中的行仍然存在不会删除以前的行。要注意的是当部署到服务器后,表结构是不会被马上建立起来的,是要等应用第一次运行起来后才会。
  • validate:每次加载hibernate时,验证创建数据库表结构,只会和数据库中的表进行比较,不会创建新表,但是会插入新值。

实体以及数据访问接口

  1. @Entity
  2. @Getter
  3. @Setter
  4. public class Person {
  5. @Id
  6. @GeneratedValue
  7. private Long id;
  8. @Column(name = "name", nullable = true, length = 20)
  9. private String name;
  10. @Column(name = "agee", nullable = true, length = 4)
  11. private int age;
  12. }
  1. public interface PersonRepository extends JpaRepository<Person, Long> {
  2. }

实体属性与数据库字段一致问题

新建包 org.hibernate.cfg ,然后拷贝下面的文件

PropertyContainer.java

自动生成创建时间及修改时间

  1. @CreationTimestamp
  2. @Column(nullable = false, updatable = false)
  3. private LocalDateTime createTime;
  4. @UpdateTimestamp
  5. @Column(nullable = false)
  6. private LocalDateTime updateTime;

参考地址
原文链接:https://blog.csdn.net/wujiaqi0921/article/details/78789087