Springboot 와 Jpa 는 학생 CRUD 조작 코드 인 스 턴 스 를 실현 합 니 다.

12270 단어 SpringbootJpaCRUD
전기 준비
아이디어 로 SpringBoot 프로젝트 새로 만 들 기
데이터베이스 에 student 표를 만 듭 니 다.

건축 가방

1.엔티티 를 작성 하여 실체 클래스 Student 를 패키지 합 니 다.
(하나의 Javabean 규범)

package com.example.stu.kudestu.stu.entity;

import javax.persistence.*;

@Entity
@Table(name = "student")
//@Entity          @Table(name = "student")        ,  name        
public class Student {
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY) //ID  
  private Integer id;
  private String name;
  private int age;
  private String sex;

  @Override
  public String toString() {
    return "Student{" +
        "id=" + id +
        ", name='" + name + '\'' +
        ", age=" + age +
        ", sex='" + sex + '\'' +
        '}';
  }

  public Student() {
  }

  public Integer getId() {
    return id;
  }

  public void setId(Integer id) {
    this.id = id;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public int getAge() {
    return age;
  }

  public void setAge(int age) {
    this.age = age;
  }

  public String getSex() {
    return sex;
  }

  public void setSex(String sex) {
    this.sex = sex;
  }
}
2.dao 층 StudentDao 클래스 작성

package com.example.stu.kudestu.stu.dao;

import com.example.stu.kudestu.stu.entity.Student;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;

import java.util.List;

public interface StudentDao extends JpaRepository<Student,Integer> {
//<Student,Integer>            
  Student findStuById(Integer id);
 @Query(name="findStuByName",nativeQuery = true,value =
      "select * from student where name=:name ")
  List<Student> findStuByName(@Param("name") String name);
}
3.service 계층 클래스 StudentService,이미지 인터페이스 작성

import com.example.stu.kudestu.stu.entity.Student;
import org.springframework.data.domain.Page;
import java.util.List;


public interface StudentService {
  Student save(Student student);//    
  Student update(Student student);//  
  void delete(Integer id);//  id    
  Student findStuById(Integer id);//  ID    ,        , StudentDao    
  List<Student> findStuByName(String name);//        , StudentDao    

  /**
   *         
   * @param page //   
   * @param pageSize //     
   * @return
   */
  Page<Student> findAll(int page,int pageSize);

}
서비스 인터페이스 에서 구현

import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class StudentServiceimpl implements StudentService {

  @Autowired//         
  private StudentDao studentDao;


  @Override
  public Student save(Student student) {
    return studentDao.save(student);
  }

  @Override
  public Student update(Student student) {
    return studentDao.save(student);
  }

  @Override
  public void delete(Integer id) {
    studentDao.deleteById(id);
  }

  @Override
  public Student findStuById(Integer id) {
    return studentDao.findStuById(id);
  }

  @Override
  public List<Student> findStuByName(String name) {
    return studentDao.findStuByName(name);
  }

  @Override
  public Page<Student> findAll(int page,int pageSize) {
    Pageable pageable= PageRequest.of(page,pageSize);
    return studentDao.findAll(pageable);

  }
}
4.컨트롤 러 계층 StudentController 클래스 작성

package com.example.stu.kudestu.stu.controller;

import com.example.stu.kudestu.stu.dao.StudentDao;
import com.example.stu.kudestu.stu.entity.Student;
import com.example.stu.kudestu.stu.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

@RestController 
/*   Controller     
@RequestMapping("/s")
public class StudentController {

  @Autowired//    
  private StudentService studentService;

  /**
   *     
   * @param student        
   * @return
   */
  @PostMapping("/add")
  /*@PostMapping
      POST  

  Spring MVC    
  
     Restful     
@GetMapping,  get   
@PostMapping,  post   
@PutMapping,  put   
@DeleteMapping,  delete  
*/
    
  public Student save(Student student){
    return studentService.save(student);
  }

  /**
   *     
   * @param student
   */
  @PostMapping("/update")
  public Student update(Student student){
    return studentService.save(student);
  }

  /**
   *     
   * @param id       id
   * @return
   */
  @GetMapping("/del/{id}")
  public String del(@PathVariable int id){
    studentService.delete(id);
    return "yes";
  }

  @GetMapping("/findByName/{name}")
  public List<Student> findByName(@PathVariable String name){
  return studentService.findStuByName(name);
  }

  @GetMapping("/query")
  public Page<Student> findByPage(Integer page , HttpServletResponse response){
    response.setHeader("Access-Control-Allow-Origin","*"); //      
    if(page==null||page<=0){
      page=0;
    }else{
      page-=1;
    }
    return studentService.findAll(page,5);
  }
}
@RestController
Controller 계층 의 클래스 에 적 용 됩 니 다.@RestController 주 해 는@ResponseBody+@Controller 와 합 친 역할 에 해당 하 며,동시에 되 돌아 오 는 데 이 터 는 json 데이터 입 니 다.
@Controller 주 해 를 사용 하여 대응 하 는 방법 에 있어 서 보기 해석 기 는 return 의 jsp,html 페이지 를 분석 하고 해당 페이지 로 이동 할 수 있 습 니 다.
json 등의 내용 을 페이지 로 되 돌려 주 려 면@Response Body 주 해 를 추가 해 야 합 니 다.
@PostMapping(value="/add")은@RequestMapping(value="/add",method=RequestMethod.POST)과 같 습 니 다.
5.HBuilder 를 이용 하여 전단 작성

Jquery.js 내용https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js복사 하면 됩 니 다.
홈 페이지:index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>
    
    <script type="text/javascript">
      
      var page = 1;
      var tp = 0;
      
      $(function(){
        showData();
      });
      
      function upPage(){
        if(page>1){
          page--;
          showData();
        }
        
      }
      
      function downPage(){
        if(page<tp){
          page++;
          showData();
        }
        
      }
      
      function showData(){
        $.ajax({
          url:'http://localhost:8888/stu/s/query?page='+page,
          success:function(result){
            
            var rel = result.content;
            tp = result.totalPages;
            
            var htmlStr = "<table width='80%' algin='center' border='1'>"+
                  "<tr><th>ID</th><th>  </th><th>  </th><th>  </th><th>  </th></tr>";
            
            for(var i=0;i<rel.length;i++){
              var stu = rel[i];
              htmlStr += "<tr><td>"+stu.id+"</td><td>"+stu.name+"</td><td>"+stu.age+"</td><td>"+stu.sex+"</td>"+
              "<td><a href=''>  </a>&nbsp;<a href='http://localhost:8888/stu/s/del/"+stu.id+"'>  </a></td></tr>";
            }
            
            htmlStr += "</table>";
            
            $("#show").html(htmlStr);
          }
        });
      }
      
    </script>
    
  </head>
  <body>
    
    <h1 style="text-align: center;">      </h1>
    <hr>
    <a href="add.html" rel="external nofollow" >    </a>
    
    <div id="show">
      
    </div>
    
    <a href="javascript:upPage();" rel="external nofollow" >   </a>&nbsp;&nbsp;<a href="javascript:downPage();" rel="external nofollow" >   </a>
    
  </body>
</html>
페이지 효과

학생 페이지 정보 추가

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <h1>    </h1>
    <hr>
    <form action="http://localhost:8888/stu/s/add" method="post">
      <p>
          :<input type="text" name="name" />
      </p>
      <p>
          :<input type="text" name="age" />
      </p>
      <p>
          :
        <input type="radio" name="sex" value=" " checked /> 
        <input type="radio" name="sex" value=" " /> 
      </p>
      <p>
        <input type="submit" value="  " />
      </p>
    </form>
  </body>
</html>
페이지 효과
'
어떻게 페이지 를 이용 합 니까?
Dao 인터페이스의 부모 클래스 JPA 인 터 페 이 스 를 직접 호출 하 는 페이지 방법
Service 인터페이스 계층 에서 정의:

/**
   *         
   * @param page
   * @param pageSize
   * @return
   */
  Page<Student> findAll(int page,int pageSize);
서비스 구현:

 public Page<Student> findAll(int page,int pageSize) {
    Pageable pageable= PageRequest.of(page,pageSize);
    return studentDao.findAll(pageable);

  }
컨트롤 러 층:

@GetMapping("/query")
  public Page<Student> findByPage(Integer page , HttpServletResponse response){
    response.setHeader("Access-Control-Allow-Origin","*");
    if(page==null||page<=0){
      page=0;
    }else{
      page-=1;
    }
    return studentService.findAll(page,5);
  }
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기