spring-data-jpa实现增删改查以及分页操作方法
时间:2019-04-13
本文章向大家介绍spring-data-jpa实现增删改查以及分页操作方法,主要包括spring-data-jpa实现增删改查以及分页操作方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
有几个坑一定要注意:
实现删除操作的时候一定要在各层类中 增加
@Transactional
注释,否则会一直报错
在自己使用@Query定义操作时,会碰到编译器报错,这个时候只需要禁用QL的语法检查即可
以下是部分代码:
//Repository
package com.example.myproject.dao; import com.example.myproject.domain.User; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Modifying; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import javax.transaction.Transactional; import java.util.List; /** * Created by lenovo on 2017/4/19. */ @Transactional public interface UserRepository extends JpaRepository<User,Long> { void deleteById(int id); void deleteByName(String name); void deleteBySex(String sex); void deleteByAge(int age); void removeByNameAndAge(String name, int age); @Modifying @Query(value = "update user u set u.name = :newName where u.name = :oldName",nativeQuery = true) void updateNameByName(@Param("oldName") String oldName, @Param("newName") String newName); List<User> findAll(); Page<User> findAll(Pageable pageable); List<User> findByName(String name); List<User> findBySex(String sex); List<User> findByAge(int age); User findByNameAndSex(String name, String sex); }
//Controller
package com.example.myproject.web; import com.example.myproject.dao.UserRepository; import com.example.myproject.domain.User; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Sort; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.transaction.Transactional; import java.util.List; /** * Created by lenovo on 2017/4/19. */ @RestController @RequestMapping("/") @Transactional public class UserController { @Autowired private UserRepository userRepository; @RequestMapping(value = "/userSave") public String userSave(@RequestParam String name,@RequestParam String sex,@RequestParam int age) { User user = new User(); user.setName(name); user.setAge(age); user.setSex(sex); userRepository.save(user); return "true"; } @RequestMapping(value = "/deleteById") public String deleteById(@RequestParam int id) { userRepository.deleteById(id); return "success"; } @RequestMapping(value = "/deleteByName") public String deleteByName(@RequestParam String name) { userRepository.deleteByName(name); return "success"; } @RequestMapping(value = "/deleteBySex") public String deleteBySex(@RequestParam String sex) { userRepository.deleteBySex(sex); return "success"; } @RequestMapping(value = "/deleteByAge") public String deleteByAge(@RequestParam int age) { userRepository.deleteByAge(age); return "success"; } @RequestMapping(value = "/deleteByNameAndAge") public String deleteByNameAndAge(@RequestParam String name, @RequestParam int age) { userRepository.removeByNameAndAge(name,age); return "success"; } @RequestMapping(value = "/updateNameByName") public String updateNameByName(@RequestParam String oldName, @RequestParam String newName) { userRepository.updateNameByName(oldName,newName); return "success"; } @RequestMapping(value = "/findall") public List<User> findAll() { List<User> l =userRepository.findAll(); return l; } @RequestMapping(value = "/findallByPage") public Page<User> findAllByPage() { Sort sort = new Sort(Sort.Direction.ASC,"id"); Pageable pageable = new PageRequest(2,6,sort); Page<User> page = userRepository.findAll(pageable); return page; } @RequestMapping(value = "/findByName") public List<User> findByName(@RequestParam String name) { List<User> list =userRepository.findByName(name); return list; } @RequestMapping(value = "/findByAge") public List<User> findByAge(@RequestParam int age) { List<User> list =userRepository.findByAge(age); return list; } @RequestMapping(value = "/findBySex") public List<User> findBySex(@RequestParam String sex) { List<User> list =userRepository.findBySex(sex); return list; } @RequestMapping(value = "/findByNameAndSex") public User findByNameAndSex(@RequestParam String name, @RequestParam String sex) { User list =userRepository.findByNameAndSex(name,sex); return list; } }
//User
package com.example.myproject.domain; import javax.persistence.*; /** * Created by lenovo on 2017/4/19. */ @Entity public class User { @Id @GeneratedValue() private Integer id; @Column private String name; @Column private String sex; @Column private int age; public Integer getId() { return id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
以上这篇spring-data-jpa实现增删改查以及分页操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Git | Git Server 搭建
- leetcode树之二叉树的深度
- Nic*app的native层算法破解
- ActiveMq的顺序性消费问题
- 佳能遭严重勒索软件攻击,10TB数据被窃取,大量服务宕机
- 进程线程剖析(二)-进程组成、状态与特点
- 【Flink】基于 Flink 实时计算商品订单流失量
- 这就是你日日夜夜想要的docker!!!---------TLS加密远程连接Docker
- 【Flink】基于 Flink 的流式数据实时去重
- 从零开始安装穿透式检索
- 使用kind搭建kubernetes
- 如何设计一个牛逼的API接口
- 猿实战17——实现你未必知晓的运费模板
- 这 5 个 VSCode 扩展提高你的开发效率
- 猿实战18——商品发布之类目选择