springboot--SpringDataJPA生成表 crud数据

JPA(Java Persistence API)java持久化规范。

只需要编写一个接口继承一个类就可以进行操作

  1. <dependency>
  2. <groupId>mysql </groupId>
  3. <artifactId>mysql-connector-java </artifactId>
  4. </dependency>
  5. <dependency>
  6. <groupId>org.springframework.boot </groupId>
  7. <artifactId>spring-boot-starter-data-jpa </artifactId>
  8. </dependency>
  1. @Entity
  2. public class User {
  3. //使用这个注解id必须是int
  4. @Id
  5. @GeneratedValue(strategy=GenerationType.AUTO)
  6. private long id;
  7. private String name;
  8. @JSONField(format= "yyyy-MM-dd HH:mm:ss")
  9. private Date date;
  10. @JSONField(serialize= false)
  11. private String notSerilized;
  12. public String getNotSerilized() {
  13. return notSerilized;
  14. }
  15. public void setNotSerilized(String notSerilized) {
  16. this.notSerilized = notSerilized;
  17. }
  18. public String getName() {
  19. return name;
  20. }
  21. public void setName(String name) {
  22. this.name = name;
  23. }
  24. public Date getDate() {
  25. return date;
  26. }
  27. public void setDate(Date date) {
  28. this.date = date;
  29. }
  30. public long getId() {
  31. return id;
  32. }
  33. public void setId(long id) {
  34. this.id = id;
  35. }
  36. }
会根据@entity标签生成实体表

会根据@id和@GeneratedValue生成数据主键:注意如果使用GeneratedValue那么逐渐必须不是String
生成字段的原则是驼峰 比如oldName --OLD_NAME

repository

创建repository接口继承CRUDRopository

  1. public interface UserRepository extends CrudRepository<User, Integer>{
  2. }

  1. @Service
  2. public class UserService {
  3. @Resource
  4. private UserRepository userRepository;
  5. @Transactional
  6. public void save(User user){
  7. userRepository.save(user);
  8. }
  9. @Transactional
  10. public void delete(User user){
  11. userRepository.delete(user);
  12. }
  13. public Iterable<User> findAll(){
  14. return userRepository.findAll();
  15. }
  16. }

  1. @RestController
  2. @RequestMapping(value= "/user")
  3. public class UserController {
  4. @Resource
  5. private UserService userService;
  6. /* @RequestMapping("/save")
  7. public String save(@RequestParam(required=false) User user){
  8. userService.save(user);
  9. return "save ok";
  10. }*/
  11. @RequestMapping( "/delete")
  12. public String delete(@RequestParam(required=false) User user){
  13. userService.delete(user);
  14. return "delete ok";
  15. }
  16. @RequestMapping( "/getAll")
  17. public Iterable<User> findAll(){
  18. return userService.findAll();
  19. }
  20. @RequestMapping( "/saveById")
  21. public String saveByName(@RequestParam String name){
  22. User user = new User();
  23. user.setName(name);
  24. user.setDate( new Date());
  25. userService.save(user);
  26. return "save ok";
  27. }
  28. }
1. Repository是一个空接口,即是一个标记接口;
2. 若我们定义的接口继承了Repository,则该接口会被IOC容器识别为一个Repository Bean纳入到IOC容器中,进而可以在该接口中定义满足一定规范的方法。
3. 实际上也可以通过@RepositoryDefinition,注解来替代继承Repository接口。
4. 查询方法以find | read | get开头;
5. 涉及查询条件时,条件的属性用条件关键字连接,要注意的是条件属性以首字母大写。
6.使用@Query注解可以自定义JPQL语句实现更灵活的查询。
PagingAndSortingRepository
该接口提供了分页与排序功能   
 --Iterable<T> findAll(Sort sort); //排序    
--Page<T> findAll(Pageable pageable); //分页查询(含排序功能)

猜你喜欢

转载自blog.csdn.net/qq_34173549/article/details/80876966