针对这个话题,下面是SpringBoot整合Spring Data JPA的详细方法的攻略:
1. 添加依赖
在 pom.xml 文件中添加如下依赖:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
2. 配置数据源和JPA
在 application.properties 文件中添加数据源和 JPA 配置信息,示例如下:
# 数据源配置
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/testdb?serverTimezone=UTC&charset=utf8&useSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=root
# JPA 配置
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.jdbc.lob.non_contextual_creation=true
3. 创建实体类
创建实体类,示例如下:
@Entity
@Table(name = "user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private String name;
@Column(nullable = false)
private Integer age;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Column(nullable = false)
private Date birthday;
// 省略 getter 和 setter 方法
}
4. 创建 Repository 接口
创建 Repository 接口,示例如下:
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
// 省略其他方法
}
5. 编写业务逻辑代码
在 Service 层编写业务逻辑代码,示例如下:
@Service
@Transactional(rollbackFor = Exception.class)
public class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository;
@Override
public User getUserById(Long id) {
return userRepository.findById(id).orElse(null);
}
@Override
public List<User> getUserList() {
return userRepository.findAll();
}
@Override
public User saveUser(User user) {
return userRepository.save(user);
}
@Override
public void deleteUserById(Long id) {
userRepository.deleteById(id);
}
}
6. 创建 Controller
创建 Controller,示例如下:
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) {
return userService.getUserById(id);
}
@GetMapping("/")
public List<User> getUserList() {
return userService.getUserList();
}
@PostMapping("/")
public User saveUser(@RequestBody User user) {
return userService.saveUser(user);
}
@DeleteMapping("/{id}")
public void deleteUserById(@PathVariable Long id) {
userService.deleteUserById(id);
}
}
至此,SpringBoot整合Spring Data JPA 的配置就完成了。通过访问 UserController 的方法,即可对 User 实体进行增删改查操作。
下面是示例代码:
示例一
添加一个用户
@RestController
@RequestMapping("/user")
public class UserController {
// UserService 的注入省略
@PostMapping("/")
public User saveUser(@RequestBody User user) {
User newUser = new User();
newUser.setName(user.getName());
newUser.setAge(user.getAge());
newUser.setBirthday(user.getBirthday());
return userService.saveUser(newUser);
}
}
发送 POST 请求,请求体参数如下:
{
"name": "test",
"age": 18,
"birthday": "2022-11-11"
}
示例二
获取用户列表
@RestController
@RequestMapping("/user")
public class UserController {
// UserService 的注入省略
@GetMapping("/")
public List<User> getUserList() {
return userService.getUserList();
}
}
发送 GET 请求即可获取用户列表。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot整合Spring Data JPA的详细方法 - Python技术站