Spring Boot集成JPA
jpa简介
- Java Persistence API
JPA的出现有两个原因:
简化现有Java EE和Java SE应用的对象持久化的开发工作;
Sun希望整合对ORM技术,实现持久化领域的统一。
- JPA注解:
创建
- (1)添加Spring Data JPA的起步依赖
- (2)添加数据库驱动依赖
- (3) 在application.properties中配置数据库和jpa的相关属性
空格不能随便删除
检查pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
测试
(1)application.yml
src\main\resources\application.yml
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
url: jdbc:mysql://localhost:3306/springboot_test?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
# 配置jpa PhysicalNamingStrategyStandardImpl小驼峰 xx_yy_xx
jpa:
database: mysql
show-sql: true
hibernate:
ddl-auto: update
naming:
physical-strategy: org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
(2)User
@Entity
@Table(name = "tb_user2")
@Data
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)//自增长
private int id;
private String username;
private String password;
private String girlFriend;
private String name;
}
(3)UserDao
这里我们只需要用集成JPA的JpaRepository类,就可以实现表的基本增删查改了。
JpaRepository<T,ID> : T泛型,写类名称(对应的表),ID是表的主键。
public interface UserDao extends JpaRepository<User,Integer> {
}
(4)测试Demo05jpa2ApplicationTests
@SpringBootTest
@Slf4j
class Demo05jpa2ApplicationTests {
//Logger l= LoggerFactory.getLogger(this.getClass());
@Autowired
UserDao userDao;
@Test
void test01() {
User user=new User();
user.setGirlFriend("rose");
user.setUsername("jack@xx.com");
user.setName("jack");
System.out.println(user.toString());
//l.info("test01"+user);
userDao.save(user);//--->orm -- >将对象值取出-->sql-->数据库
}
}