欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-11-06 13:02:58
有几个坑一定要注意: 实现删除操作的时候一定要在各层类中 增加 @transactional 注释,否则会一直报错 在自己使用@query定义操作时,会...

有几个坑一定要注意:

实现删除操作的时候一定要在各层类中 增加

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