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实现增删改查以及分页操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

您可能感兴趣的文章:

  • SpringBoot JPA实现增删改查、分页、排序、事务操作等功能示例
  • spring data jpa分页查询示例代码
  • Spring Data Jpa实现分页和排序代码实例
  • SpringData JPA实现查询分页demo
  • Spring Boot中使用Spring-data-jpa实现数据库增删查改
  • 在Spring Boot中使用Spring-data-jpa实现分页查询
  • Spring Data JPA+kkpager实现分页功能实例
(0)

相关推荐

  • spring data jpa分页查询示例代码

    最近项目上用就hibernate+spring data jpa,一开始感觉还不错,但是随着对业务的复杂,要求处理一些复杂的sql,就顺便研究了下,把结果记录下,以便日后查看.用到Specification,需要继承JpaSpecificationExecutor接口.(下面代码有的分页从0开始作为第一页,有的从1开始作为作为第一页,我也忘记,请自己测试) DAO层: import java.util.List; import org.springframework.data.domain.Pa

  • SpringBoot JPA实现增删改查、分页、排序、事务操作等功能示例

    今天给大家介绍一下SpringBoot中JPA的一些常用操作,例如:增删改查.分页.排序.事务操作等功能. 下面先来介绍一下JPA中一些常用的查询操作: //And --- 等价于 SQL 中的 and 关键字,比如 findByHeightAndSex(int height,char sex): public List<User> findByHeightAndSex(int height,char sex); // Or --- 等价于 SQL 中的 or 关键字,比如 findByHei

  • SpringData JPA实现查询分页demo

    SpringData JPA 的 PagingAndSortingRepository接口已经提供了对分页的支持,查询的时候我们只需要传入一个 org.springframework.data.domain.Pageable 接口的实现类,指定PageNumber和pageSize即可 springData包中的 PageRequest类已经实现了Pageable接口,我们可以直接使用下边是部分代码: DAO: package com.jiaoyiping.jdjy.sourcecode.dao

  • Spring Data JPA+kkpager实现分页功能实例

    一.spring Data JPA分页 分页效果如下: 前台表格用的是: Bootstrap 分页插件用的是: kkpager kkpager是一个js分页展示控件,传入简单参数就能使用的分页效果控件,github地址:https://github.com/pgkk/kkpager 项目结构: FamilyMember实体类: package com.fendo.entity; import java.io.Serializable; import java.util.Date; import

  • 在Spring Boot中使用Spring-data-jpa实现分页查询

    在我们平时的工作中,查询列表在我们的系统中基本随处可见,那么我们如何使用jpa进行多条件查询以及查询列表分页呢?下面我将介绍两种多条件查询方式. 1.引入起步依赖   <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency&

  • Spring Boot中使用Spring-data-jpa实现数据库增删查改

    在实际开发过程中,对数据库的操作无非就"增删改查".就最为普遍的单表操作而言,除了表和字段不同外,语句都是类似的,开发人员需要写大量类似而枯燥的语句来完成业务逻辑. 为了解决这些大量枯燥的数据操作语句,我们第一个想到的是使用ORM框架,比如:Hibernate.通过整合Hibernate之后,我们以操作Java实体的方式最终将数据改变映射到数据库表中. 为了解决抽象各个Java实体基本的"增删改查"操作,我们通常会以泛型的方式封装一个模板Dao来进行抽象简化,但是这

  • Spring Data Jpa实现分页和排序代码实例

    之前我们学习了如何使用Jpa访问关系型数据库.通过Jpa大大简化了我们对数据库的开发工作.但是,之前的例子中我们只提到了最简单的CRUD(增删改查)操作.实际上,Spring Data Jpa对于分页以及排序的查询也有着完美的支持,接下来,我们来学习如何通过Pageable来对数据库进行分页查询. 添加maven依赖 首先我们需要引入Jpa,数据库直接使用hsqldb内存数据库就可以了: <project xmlns="http://maven.apache.org/POM/4.0.0&q

  • spring-data-jpa实现增删改查以及分页操作方法

    有几个坑一定要注意: 实现删除操作的时候一定要在各层类中 增加 @Transactional 注释,否则会一直报错 在自己使用@Query定义操作时,会碰到编译器报错,这个时候只需要禁用QL的语法检查即可 以下是部分代码: //Repository package com.example.myproject.dao; import com.example.myproject.domain.User; import org.springframework.data.domain.Page; imp

  • SpringBoot+MySQL+Jpa实现对数据库的增删改查和分页详解

    一. 使用Springboot+Jpa实现对mysql数据库的增删改查和分页功能 JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. 使用Springboot和jpa对数据库进行操作时,能够大大减少我们的工作量,在jpa中,已经在底层封装好了增删查的功能和sql语句,可以使我们进行快速开发 二.项目过程和配置文件 1.applaction.properties文件配置

  • Spring框架+jdbcTemplate实现增删改查功能

    SpringMVC架构(Model(实体类),Service,Controller层) Controller(接收参数调用业务层)–>Service(调用持久层,处理业务逻辑)–>Dao(与数据库交互) 1. IOC(控制反转是一种设计思想而不是技术) DI(依赖注入):是IOC思想的一种技术实现 IOC容器是Spring提供的保存Bean对象的容器 Bean管理操作 1.Xml + 注解 2.javaConfig + 注解 通过xml配置Bean:TODO: 通过javaConfig 配置B

  • springboot结合vue实现增删改查及分页查询

    1:首先.创建一个springboot项目,这里我使用以及构建好基本框架的脚手架,打开是这个样子: Result类:已经封装好了三种返回类型的包装类:code,msg,data 2:创建数据库叫mytest(可以自己取名字) CREATE TABLE `user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '序号', `name` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT NULL CO

  • MVC+jQuery.Ajax异步实现增删改查和分页

    本文实例为大家分享了MVC+jQuery.Ajax异步实现增删改查和分页的具体代码,供大家参考,具体内容如下 1.Model层代码 using System; using System.Data; using System.Configuration; using System.Linq; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; usin

  • 使用Mockjs模拟接口实现增删改查、分页及多条件查询

    目录 一.什么是Mock? 二.使用Mock有什么好处 三.安装Mock 四.效果图 五.使用Mock模拟接口实现增删改查.分页.多条件查询 总结 一.什么是Mock? mock官网 mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法. 二.使用Mock有什么好处 生成随机数据,拦截 Ajax 请求 1️⃣前后端分离 让前端攻城师独立于后端进行开发. 2️⃣增加单元测试的真实性 通过随机数据,模拟各种场景. 3️⃣开发无侵入 不需要修改

  • Mybatis实现增删改查及分页查询的方法

    MyBatis的前身就是iBatis.是一个数据持久层(ORM)框架. MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持 久层框架.MyBatis消除了几乎所有的JDBC 代码和参数的手工 设置以及结果集的检索.MyBatis使用简单的XML或注解用于 配置和原始映射,将接口和Java 的POJOs(Plan Old Java Objects,普通的Java 对象)映射成数据库中的记录.每个 MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个 SqlS

  • Java基础开发之JDBC操作数据库增删改查,分页查询实例详解

    对数据库的操作无非就是增删改查,其中数查询操作最为复杂,所以将查询单独讲解,我这里用的Mysql数据库 增删改查操作 分页查询操作 1.查询结果以list返回 2.查询结果以jsonArray返回 3.查询总记录条数 先看一下相关的配置信息 public static final String USER_NAME = "root"; public static final String PWD = "123456789"; public static final S

  • spring boot2结合mybatis增删改查的实现

    1. 场景描述 本节结合springboot2.springmvc.mybatis.swagger2等,搭建一个完整的增删改查项目,希望通过这个基础项目,能帮忙朋友快速上手springboot2项目. 2. 解决方案 2.1新建springboot项目 使用idea新建springboot项目(springboot项目快速搭建) (1)new project (2)gav设置 2.2 项目整体图及说明2.2.1 整体图 2.2.2 说明 项目包含4大内容 (1)pom.xml maven项目必备

随机推荐