Spring boot链接表增删改查简便代码

    科技2022-08-04  151


    Spring boot 多表连接 增删改查代码简便*

    MYSQL当中的数据


    在实体类当中,连接表

    package com.demo12.demo.Ertity; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import javax.persistence.*; @Table @Entity(name="student") public class Student { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int sid; private String Sname; private String Sage; private String Ssex; private int Sdid; @ManyToOne(targetEntity = Classes.class) 连接表 @JoinColumn(name="Sdid",referencedColumnName = "cid",insertable = false,updatable = false)主表的外键对应着另一个表的主键 private Classes classes;//实例化另一个表的名 同时写Get()Set()方法 public Classes getClasses() { return classes; } public void setClasses(Classes classes) { this.classes = classes; } public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getSname() { return Sname; } public void setSname(String sname) { Sname = sname; } public String getSage() { return Sage; } public void setSage(String sage) { Sage = sage; } public String getSsex() { return Ssex; } public void setSsex(String ssex) { Ssex = ssex; } public int getSdid() { return Sdid; } public void setSdid(int sdid) { Sdid = sdid; } }

    另一个表,链接,也得写实体类,Dao Service 可以不用写控制器 带式在主表控制器当中,得写上 @Autowired ClassesService classesService;

    在这里插入代码片

    写完实例化后,就创建Dao Service Controller 在Dao模式中,就写一个修改查询主键的值,其他的查询全部,删除,直接调用Dao模式自带的方法

    Dao代码如下

    package com.demo12.demo.Dao; import com.demo12.demo.Ertity.Student; 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 java.util.List; import java.util.Map; public interface StudentDao extends JpaRepository<Student,Integer> { @Query(value="select sid,Sname,Sage,Ssex,Sdid from student where sid=?1",nativeQuery=true) Student doserver(int sid);//修改查询值 }

    Dao 模式写完之后就是Service 从Service 调用Dao层的方法 代码如下

    package com.demo12.demo.Service; import com.demo12.demo.Dao.StudentDao; import com.demo12.demo.Ertity.Student; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; import java.util.Map; @Service public class StudentService { @Resource StudentDao studentDao; public List<Student>findAll(){ return studentDao.findAll(); } public void Studentadd(Student student){ studentDao.save(student); } public void doDelete(int sid){ studentDao.deleteById(sid); } public Student doserver(int sid){ return studentDao.doserver(sid); } }

    Service写完之后,最后写控制器的内容

    package com.demo12.demo.Controller; import com.demo12.demo.Ertity.Classes; import com.demo12.demo.Ertity.Student; import com.demo12.demo.Service.ClassesService; import com.demo12.demo.Service.StudentService; 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.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; @Controller @RequestMapping("/cha") public class StudentController { @Autowired StudentService studentService; @Autowired ClassesService classesService; //之前代码 @RequestMapping("/toindex")//查询全部 public String toindex(Model model){ List<Student> list=studentService.findAll(); model.addAttribute("student",list); return "index1"; } @RequestMapping("/aaa")//外表的值 @ResponseBody public List<Classes> ndex(Model model){ List<Classes>list=classesService.findAll(); model.addAttribute("classes",list); return list; } @RequestMapping("/add")//添加 public String add(){ return "Studentadd";//提交页面 } @RequestMapping("/toadd") public String toadd(Student student){ studentService.Studentadd(student); return "redirect:/cha/toindex";//返回页面 } @RequestMapping("/doDelete")//删除 public String doDelete(int sid){ studentService.doDelete(sid); return "redirect:/cha/toindex"; } @RequestMapping("/doserver")修改 public String doserver(HttpServletRequest request,Model model){ int sid=Integer.parseInt(request.getParameter("sid")); Student student=studentService.doserver(sid); model.addAttribute("student",student); return "Studentdoserver";//修改到添加的方法里边去 } }

    下面写HTML当中的代码 首先是查询全部的 链接表

    <!DOCTYPE html> <html lang="en" xmlns:th="http://www.w3.org/1999/xhtml"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <center> <table border="1" cellpadding="0" bgcolor="#7cfc00" width="80%"> <tr> <th colspan="8">信息表</th> </tr> <tr> <th colspan="8"> <a href="/cha/add">添加</a> </th> </tr> <tr> <td><input type="text" name="sid">编号</td> <td><input type="text" name="Sname">姓名</td> <td><input type="text" name="Sage">年龄</td> <td><input type="text" name="Ssex">性别</td> <td> <a href="/cha/indes">查询</a> </td> </tr> <tr> <td>编号</td> <td>姓名</td> <td>年龄</td> <td>性别</td> <td>序号</td> <td>班级</td> <td>操作</td> </tr> <tr th:each="java:${student}">//查询全部 <td th:text="${java.sid}"></td> <td th:text="${java.Sname}"></td> <td th:text="${java.Sage}"></td> <td th:text="${java.Ssex}"></td> <td th:text="${java.Classes.cid}"></td>//链接表的cid <td th:text="${java.Classes.name}"></td>//链接表的姓名 <td> <a th:href="@{/cha/doDelete(sid=${java.sid})}">删除</a> <a th:href="@{/cha/doserver(sid=${java.sid})}">修改</a> </td> </tr> </table> </center> </body> </html>

    查询全部之后就写添加方法 添加方法有很多,我的是最垃圾的一种

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <table border="1" bgcolor="#00bfff"> <tr><td>添加信息</td></tr> <form action="/cha/toadd">//提交到控制器 <tr> <td><input type="text" name="Sname">姓名</td> </tr> <tr> <td><input type="text" name="Sage">年龄</td> </tr> <tr> <td><input type="text" name="Ssex">性别</td> </tr> <tr> <td><input type="text" name="Sdid">班级</td> </tr> <tr> <input type="submit" value="添加"> </tr> </form> </table> </body> </html>

    删除直接在控制器使用,没有再写在HTML当中删除 修改在HTML当中写,代码如下

    <!DOCTYPE html> <html lang="en" xmlns:th="http://www.w3.org/1999/xhtml"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <table border="1" width="50%"> <form action="/cha/toadd"> 编号:<input type="text" th:value="${student.sid}" name="sid"/><br> 姓名:<input type="text" th:value="${student.Sname}" name="Sname"/><br> 年龄:<input type="text" th:value="${student.Sage}" name="Sage"/><br> 性别:<input type="text" th:value="${student.Ssex}" name="Ssex"/><br> 班级:<input type="text" th:value="${student.Sdid}" name="Sdid"/><br> <input type="submit" value="修改"> </form> </table> </body> </html>
    Processed: 0.023, SQL: 8