下面是使用JPA下Hibernate的ddl-auto方式在Spring Boot中的完整攻略。
1. 配置JPA数据源
在使用JPA下Hibernate的ddl-auto方式之前,我们需要先配置JPA的数据源。例如,我们可以使用application.properties文件来配置JPA数据源,方法如下:
spring.datasource.url=jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.hibernate.ddl-auto=create-drop
其中,定义了JPA所需的数据源连接信息和驱动程序信息,这里以MySQL为例。其中,jdbc:mysql://localhost:3306/test是MySQL的URL,root是MySQL的用户名,123456是MySQL的密码,com.mysql.jdbc.Driver是MySQL驱动程序的类名。
2. 配置Hibernate的ddl-auto方式
接下来就是配置Hibernate的ddl-auto方式,例如,我们可以在application.properties文件中添加以下内容:
spring.jpa.hibernate.ddl-auto=create-drop
在这个例子中,我们设置Hibernate的ddl-auto方式为create-drop,表示在启动应用程序时自动创建数据库,而在关闭应用程序时自动删除数据库。
如果要将ddl-auto方式设置为更新数据库,请将其设置为update。
3. 示例:创建一个新的实体类和数据库表
接下来,我们将创建一个新的实体类User,并为其创建一个名为users的数据库表。代码示例如下:
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private String email;
// getter and setter methods
}
在这个例子中,我们定义了一个实体类User,其中包括三个属性id,name和email,其中id属性是自动生成的。该实体类使用了JPA注解@Entity来指示它是一个JPA实体,并使用了@Id和@GeneratedValue来指示id属性是主键。
接下来,我们将在应用程序启动时为此实体类自动创建一个名为users的数据库表。代码示例如下:
@SpringBootApplication
public class DemoApplication implements CommandLineRunner {
@Autowired
private UserRepository userRepository;
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
userRepository.save(new User("user1", "user1@example.com"));
userRepository.save(new User("user2", "user2@example.com"));
}
}
在这个例子中,我们使用了@SpringBootApplication注解,它是Spring Boot特有的注解,相当于@Configuration注解、@EnableAutoConfiguration注解和@ComponentScan注解的组合。我们在上面的示例中使用CommandLineRunner来初始化一些数据到users表中。
4. 示例:更新实体类和数据库表
现在我们来看一个修改实体类和数据库表的示例。我们将向User实体类中添加一个新的age属性,并更新数据库表以添加该新列。
在User实体类中添加一个新的age属性,代码如下:
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private String email;
private int age; // 新添加的属性
// getter and setter methods
}
我们在User实体类中添加了一个新的age属性,并使用了JPA注解来指示它是一个普通属性。
接下来,我们需要对数据库表进行修改来添加一个新的age列。我们可以使用Hibernate的自动DDL功能来实现。我们只需要将ddl-auto设置为update即可,Hibernate将自动修改数据库表以添加新的age列。
例如,我们可以修改application.properties文件,如下所示:
spring.jpa.hibernate.ddl-auto=update
然后我们启动应用程序,Hibernate将自动执行更新操作以添加新的age列。
以上就是Spring Boot使用JPA下Hibernate的ddl-auto方式的完整攻略和示例。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot中使用jpa下hibernate的ddl-auto方式 - Python技术站