JPA的一些记录(JAVA持久化API)
Posted Harris-H
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JPA的一些记录(JAVA持久化API)相关的知识,希望对你有一定的参考价值。
JPA的一些记录(JAVA持久化API)
写一个仓库类接口,继承JpaRepository
public interface UserRepository extends JpaRepository<User, Long> {
}
写一个接口
public interface UserService {
public List<User> getUserList();
public User findUserById(Long id);
public void save(User user);
public void edit(User user);
public void delete(Long id);
}
写接口对应的实现类,用(自动注入)仓库类的方法直接调用。
package com.harris.serviceimpl;
import com.harris.entity.User;
import com.harris.repository.UserRepository;
import com.harris.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service //声明类为服务实现类
public class UserServiceImp implements UserService {
@Autowired // 自动注入(不需要自己new对象)
private UserRepository userRepository;
@Override
public List<User> getUserList() {
return userRepository.findAll(); //直接调用Repository内置的CURD方法
}
@Override
public User findUserById(Long id) {
return userRepository.findById(id).get(); //直接调用Repository内置的CURD方法
//findById(id)返回的是Optional类(一个可以为null的容器对象)
//如果Optional容器中存在对象,则调用get()方法返回该对象
}
@Override
public void save(User user) {
userRepository.save(user); //直接调用Repository内置的CURD方法
}
@Override
public void edit(User user) { //保存修改的对象
userRepository.save(user); //直接调用Repository内置的CURD方法
}
@Override
public void delete(Long id) {
userRepository.deleteById(id); //直接调用Repository内置的CURD方法
}
}
手动添加一些数据
Controller层
@RestController
public class UserController {
@Autowired
UserRepository userRepository;
@RequestMapping("/get/{id}")
public User getUserById(@PathVariable Long id) {
User user = userRepository.findById(id).get();
return user;
}
@RequestMapping("/list")
public List<User> list() {
List<User> users = userRepository.findAll();
return users;
}
}
使用Postman测试
- get接口测试
- list接口测试
修改Controller层
@Controller
public class UserController {
@Autowired
UserRepository userRepository;
@RequestMapping("/")
public String index() {
return "redirect:/list"; //请求转发到 /list
}
@RequestMapping("/list")
public String list(Model model) {
List<User> users=userRepository.findAll();
model.addAttribute("users", users);
return "user/list";
}
@RequestMapping(value = "/delete/{id}")
public String delete(@PathVariable Long id) {
userRepository.deleteById(id);
return "redirect:/list";
}
}
以上是关于JPA的一些记录(JAVA持久化API)的主要内容,如果未能解决你的问题,请参考以下文章