Use SpringBoot to implement additions, deletions, and changes

1. Create a project

We need to create a Spring initializr project.

2. Introduce dependencies

Write in the aoolication.properties file under src->main->resources

#数据源配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.driverClassName=com.mysql.jdbc.Driver
#在下面3306配置自己的数据库(自己配置)
spring.datasource.url=jdbc:mysql://localhost:3306/stu?useSSL=false&useUnicode=true&characterEncoding=utf-8&autoReconnect=true&serverTimezone=Asia/Shanghai
#数据库用户(自己配置)
spring.datasource.username=root
#数据库密码(自己配置)
spring.datasource.password=root
spring.datasource.initialSize=20
spring.datasource.minIdle=50
spring.datasource.maxActive=500

#上下文配置
server.port=8888
server.servlet.context-path=/stu

#配置jpa
#帮我们自动生成表结构
spring.jpa.properties.hibernate.hbm2ddl.auto=update
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
spring.jpa.show-sql= true
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true

Import dependencies in pom.xml file

<!-- druid数据库连接池-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.10</version>
</dependency>
<!-- 使用page页面-->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.10</version>
</dependency>

If the red font appears as shown below

insert image description here
Click on import changes in the lower right corner to download
insert image description here

3. Subcontract write class

insert image description here
The creation of these four packages
entity is the access control of the entity
dao to the database operation
service business class code and the call
controller page of the dao

Student
package com.kude.stu.kudestu.stu.entity;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Student {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)//设置为自动递增
    private int id;
    private String name;
    private int age;
    private String sex;

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

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

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

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getId() {
        return id;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public String getSex() {
        return sex;
    }

    public Student() {
    }
}

StudentDao
package com.kude.stu.kudestu.stu.dao;

import com.kude.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 findStudentById(Integer id);

    @Query(name = "findStuByName",nativeQuery = true,value =
            "select * from student where name=:name")
    List<Student> findStuByName(@Param("name") String name);
    }
StdentService

this is an interface

package com.kude.stu.kudestu.stu.service;

import com.kude.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 sid);
    Student findStuById(Integer id);
    List<Student> findStuByName(String name);

    /**
     * 分页查询所有数据
     * @param page 当前页
     * @param pageSize 每页记录数
     * @return
     */
    Page<Student> findAll(int page,int pageSize);

}
StudentServiceImpl
package com.kude.stu.kudestu.stu.service;

import com.kude.stu.kudestu.stu.dao.StudentDao;
import com.kude.stu.kudestu.stu.entity.Student;
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.stereotype.Service;

import java.util.List;

@Service
public class StudentServiceImpl implements StudentService {

    @Autowired
    StudentDao studentDao;

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

    @Override
    public Student update(Student student) {
        return studentDao.save(student);//调用save如果传入的id已经存在那么会把之前的信息进行覆盖。
    }

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

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

    @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);
    }
}

StudentController
package com.kude.stu.kudestu.stu.controller;

import com.kude.stu.kudestu.stu.entity.Student;
import com.kude.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.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.List;

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

    @Autowired
    StudentService studentService;

    /**
     * 添加学生
     * @param student 要添加的学生对象
     * @return
     */
    @PostMapping("/add")
    public Student save(Student student){
        return studentService.save(student);
    }

    /**
     * 修改学生
     * @param student
     * @return
     */
    @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";
    }

    /**
     * 通过姓名找到信息
     * @param name
     * @return
     */
    @GetMapping("/findByName/{name}")
    public List<Student> findByName(@PathVariable String name){
        return studentService.findStuByName(name);
    }

    /**
     * 利用分页查找全部信息
     * @param page
     * @param response
     * @return
     */
    @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);
    }

}

The annotations must not be too many, otherwise various errors will be reported.

4. Front-end page

Very simple front-end page
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(){
    show();
    });
    
   function upPage(){
    if(page>1){
     page--;
     show();
    }
    
   }
   
   function downPage(){
    if(page<tp){
     page++;
     show();
    }
   } 
   
   function show(){
    $.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">添加学生</a>
  <div id="show">
  </div>
  <a href="javascript:upPage()">上一页</a>&nbsp;&nbsp;<a href="javascript:downPage()">下一页</a>
 </body>
</html>

insert image description here

add.html

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title></title>
 </head>
 <body>
  <h1>添加学生</h1>
  <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>

insert image description here

Guess you like

Origin blog.csdn.net/MCYZSF/article/details/89743427