使用org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration配置jdbc
时间: 2023-06-16 17:04:07 浏览: 197
spring整合jdbc的配置
3星 · 编辑精心推荐
要在Spring Boot中使用Hibernate JPA,您可以使用Spring Boot提供的HibernateJpaConfiguration类进行配置。以下是一个简单的示例,演示如何使用Hibernate JPA和Spring Boot配置JDBC连接:
1. 添加Hibernate JPA和MySQL JDBC的依赖项:
```
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
```
2. 在application.properties文件中添加以下属性:
```
spring.datasource.url=jdbc:mysql://localhost:3306/db_name
spring.datasource.username=db_username
spring.datasource.password=db_password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
```
3. 创建一个HibernateJpaConfiguration类,继承自Spring Boot提供的HibernateJpaConfiguration类:
```
@Configuration
@EnableTransactionManagement
public class MyHibernateJpaConfiguration extends HibernateJpaConfiguration {
@Autowired
private DataSource dataSource;
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean();
em.setDataSource(dataSource);
em.setPackagesToScan("com.example.demo.entity");
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
em.setJpaVendorAdapter(vendorAdapter);
Properties properties = new Properties();
properties.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQL5Dialect");
em.setJpaProperties(properties);
return em;
}
@Bean
public PlatformTransactionManager transactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(entityManagerFactory().getObject());
return transactionManager;
}
}
```
4. 确保您的实体类在指定的包中,并且使用@Entity和@Id注释进行注释:
```
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "name")
private String name;
@Column(name = "email")
private String email;
// getters and setters
}
```
5. 在您的服务类中使用@Autowired注释自动装配EntityManager:
```
@Service
public class UserService {
@Autowired
private EntityManager entityManager;
@Transactional
public User save(User user) {
entityManager.persist(user);
return user;
}
@Transactional(readOnly = true)
public User findById(Long id) {
return entityManager.find(User.class, id);
}
// other methods
}
```
这个例子展示了如何使用Hibernate JPA和Spring Boot配置JDBC连接。您可以根据自己的需要进行调整和修改。
阅读全文