更新至上课最新内容(24.10.18)

This commit is contained in:
JUZIZZZ 2024-10-22 21:02:24 +08:00
parent c8e85dfe98
commit 944b62a8c1
33 changed files with 740 additions and 6 deletions

29
pom.xml
View File

@ -60,6 +60,35 @@
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- <dependency>-->
<!-- <groupId>org.mybatis.spring.boot</groupId>-->
<!-- <artifactId>mybatis-spring-boot-starter</artifactId>-->
<!-- <version>3.0.3</version>-->
<!-- </dependency>-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>3.5.7</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-generator</artifactId>
<version>3.5.7</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.31</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.25</version>
</dependency>
</dependencies>
<build>

View File

@ -1,5 +1,6 @@
package com.liulingzhi.springboot.springboot;
package com.liulingzhi.springboot.springboot.controller;
import com.liulingzhi.springboot.springboot.model.User;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

View File

@ -1,4 +1,4 @@
package com.liulingzhi.springboot.springboot;
package com.liulingzhi.springboot.springboot.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;

View File

@ -0,0 +1,72 @@
package com.liulingzhi.springboot.springboot.controller;
import com.liulingzhi.springboot.springboot.model.Person;
import com.liulingzhi.springboot.springboot.model.StuCard;
import com.liulingzhi.springboot.springboot.service.PersonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class PersonController {
@Autowired
private PersonService personService;
@RequestMapping("/personpage")
public String getAllPerson(Model model){
model.addAttribute("personList",personService.getAllPerson());
return "personpage.html";
}
// 跳转到添加页面
@RequestMapping("/addpersonpage")
public String addPerson(){
return "addpersonpage.html";
}
//提交请求
@RequestMapping("/addpersoncommit")
public String addPersonCommit(String name,int age,String classname,String stuid){
Person person = new Person();
person.setName(name);
person.setAge(age);
StuCard stuCard = new StuCard();
stuCard.setClassname(classname);
stuCard.setStuid(stuid);
person.setStuCard(stuCard);
personService.addPerson(person);
return "redirect:/personpage";
}
@RequestMapping("/deleteperson")
public String deletePerson(int id,int stuid){
personService.deletePerson(id,stuid);
return "redirect:/personpage";
}
@RequestMapping("/updatepersonpage")
public String updatePerson(int id,String name,int age,int stucardid,String classname,String stuid,
Model model){
model.addAttribute("id",id);
model.addAttribute("name",name);
model.addAttribute("age",age);
model.addAttribute("stucardid",stucardid);
model.addAttribute("classname",classname);
model.addAttribute("stuid",stuid);
return "update.html";
}
@RequestMapping("/updatepersoncommit")
public String updatePersonCommit(int id,String name,int age,int stucardid,String classname,String stuid){
Person person = new Person();
person.setId(id);
person.setName(name);
person.setAge(age);
StuCard stuCard = new StuCard();
stuCard.setId(stucardid);
stuCard.setClassname(classname);
stuCard.setStuid(stuid);
person.setStuCard(stuCard);
personService.updatePerson(person);
return "redirect:/personpage";
}
}

View File

@ -0,0 +1,81 @@
package com.liulingzhi.springboot.springboot.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.liulingzhi.springboot.springboot.model.Result;
import com.liulingzhi.springboot.springboot.model.StuCard;
import com.liulingzhi.springboot.springboot.model.Student;
import com.liulingzhi.springboot.springboot.service.IStudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.List;
/**
* <p>
* 前端控制器
* </p>
*
* @author 作者是橘子
* @since 2024-10-18
*/
@CrossOrigin
@Controller
@RequestMapping("/student")
public class StudentController {
@Autowired
IStudentService iStudentService;
//JSON方法返回数据
@ResponseBody
@RequestMapping("studentlist1")
public Result getStudentList1(){
QueryWrapper<Student> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name","橘三炮").or().eq("age",24);
List<Student> list = iStudentService.list(queryWrapper);
return Result.ok().put("data",list);
}
@ResponseBody
@RequestMapping("studentlist")
public Result getStudentList(){
List<Student> list = iStudentService.list();
return Result.ok().put("data",list);
}
@ResponseBody
@RequestMapping("addStudent")
public Result addStudentList(Student student){
Boolean result = iStudentService.save(student);
if (result){
return Result.ok();
}
return Result.error();
}
@ResponseBody
@RequestMapping("updateStudent")
public Result updateStudentList(Student student){
Boolean result = iStudentService.saveOrUpdate(student);
if (result){
return Result.ok();
}
return Result.error();
}
@ResponseBody
@RequestMapping("deleteStudent")
public Result deleteStudentList(int id){
Boolean result = iStudentService.removeById(id);
if (result){
return Result.ok();
}
return Result.error();
}
}

View File

@ -1,5 +1,6 @@
package com.liulingzhi.springboot.springboot;
package com.liulingzhi.springboot.springboot.controller;
import com.liulingzhi.springboot.springboot.model.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

View File

@ -0,0 +1,12 @@
package com.liulingzhi.springboot.springboot.dao;
import com.liulingzhi.springboot.springboot.model.Order;
import com.liulingzhi.springboot.springboot.model.StuCard;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface OrderMapper {
public List<Order> findOrderByPersonId(String persnonId);
}

View File

@ -0,0 +1,14 @@
package com.liulingzhi.springboot.springboot.dao;
import com.liulingzhi.springboot.springboot.model.Person;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
//实现不是写到Java类中而是写到xml配置文件中
@Mapper
public interface PersonMapper {
public List<Person> getAllPerson();
public int addPerson(Person person);
public int deletePerson(int id);
public int updatePerson(Person person);
}

View File

@ -0,0 +1,12 @@
package com.liulingzhi.springboot.springboot.dao;
import com.liulingzhi.springboot.springboot.model.Order;
import com.liulingzhi.springboot.springboot.model.Product;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface ProductMapper {
public List<Product> findProductByOrderId(int orderId);
}

View File

@ -0,0 +1,13 @@
package com.liulingzhi.springboot.springboot.dao;
import com.liulingzhi.springboot.springboot.model.StuCard;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface StuCardMapper {
public StuCard findStuCardById(int id);
// 添加成功的条数
public int addStuCard(StuCard stuCard);
public int deleteStuCard(int id);
public int updateStuCard(StuCard stuCard);
}

View File

@ -0,0 +1,18 @@
package com.liulingzhi.springboot.springboot.dao;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liulingzhi.springboot.springboot.model.Student;
import org.apache.ibatis.annotations.Mapper;
/**
* <p>
* Mapper 接口
* </p>
*
* @author 作者是橘子
* @since 2024-10-18
*/
@Mapper
public interface StudentMapper extends BaseMapper<Student> {
}

View File

@ -0,0 +1,15 @@
package com.liulingzhi.springboot.springboot.model;
import lombok.Data;
import java.util.List;
@Data
public class Order {
private int id;
private String orderinfo;
private int orderprice;
private int personid;
private List<Product> productList;
}

View File

@ -0,0 +1,18 @@
package com.liulingzhi.springboot.springboot.model;
import lombok.Data;
import java.util.List;
//查询person表所有的数据
//把每个stucardid传过去查学生卡信息
//根据第一步的结果 id 传到order1表去查询订单
@Data
public class Person {
private int id;
private String name;
private int age;
private StuCard stuCard;
private List<Order> orderList;
}

View File

@ -0,0 +1,10 @@
package com.liulingzhi.springboot.springboot.model;
import lombok.Data;
@Data
public class Product {
private int id;
private String productname;
private int productprice;
}

View File

@ -0,0 +1,59 @@
package com.liulingzhi.springboot.springboot.model;
import java.util.HashMap;
import java.util.Map;
/**
* 返回数据封装类
*/
public class Result extends HashMap<String, Object> {
private static final long serialVersionUID = 1L;
public Result() {
put("code", 0);
put("msg", "success");
}
public static Result error() {
return error(500, "未知异常,请联系管理员");
}
public static Result error(String msg) {
return error(500, msg);
}
public static Result error(int code, String msg) {
Result r = new Result();
r.put("code", code);
r.put("msg", msg);
return r;
}
public static Result ok(String msg) {
Result r = new Result();
r.put("msg", msg);
return r;
}
public static Result ok(Object obj) {
Result r = new Result();
r.put("data", obj);
return r;
}
public static Result ok(Map<String, Object> map) {
Result r = new Result();
r.putAll(map);
return r;
}
public static Result ok() {
return new Result();
}
public Result put(String key, Object value) {
super.put(key, value);
return this;
}
}

View File

@ -0,0 +1,10 @@
package com.liulingzhi.springboot.springboot.model;
import lombok.Data;
@Data
public class StuCard {
private int id;
private String classname;
private String stuid;
}

View File

@ -0,0 +1,29 @@
package com.liulingzhi.springboot.springboot.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import lombok.Getter;
import lombok.Setter;
/**
* <p>
*
* </p>
*
* @author 作者是橘子
* @since 2024-10-18
*/
@Getter
@Setter
public class Student implements Serializable {
private static final long serialVersionUID = 1L;
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
private Integer age;
private String name;
}

View File

@ -1,4 +1,4 @@
package com.liulingzhi.springboot.springboot;
package com.liulingzhi.springboot.springboot.model;
import lombok.Data;

View File

@ -0,0 +1,17 @@
package com.liulingzhi.springboot.springboot.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liulingzhi.springboot.springboot.model.Student;
/**
* <p>
* 服务类
* </p>
*
* @author 作者是橘子
* @since 2024-10-18
*/
public interface IStudentService extends IService<Student> {
}

View File

@ -0,0 +1,14 @@
package com.liulingzhi.springboot.springboot.service;
import com.liulingzhi.springboot.springboot.model.Person;
import java.util.List;
public interface PersonService {
public List<Person> getAllPerson();
public int addPerson(Person person);
public int deletePerson(int id,int stuid);
public int updatePerson(Person person);
}

View File

@ -0,0 +1,43 @@
package com.liulingzhi.springboot.springboot.service.impl;
import com.liulingzhi.springboot.springboot.dao.PersonMapper;
import com.liulingzhi.springboot.springboot.dao.StuCardMapper;
import com.liulingzhi.springboot.springboot.model.Person;
import com.liulingzhi.springboot.springboot.service.PersonService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class PersonServiceImpl implements PersonService {
@Autowired
PersonMapper personMapper;
@Autowired
StuCardMapper stuCardMapper;
@Override
public List<Person> getAllPerson() {
return personMapper.getAllPerson();
}
@Override
public int addPerson(Person person) {
stuCardMapper.addStuCard(person.getStuCard());
return personMapper.addPerson(person);
}
@Override
public int deletePerson(int id, int stuid) {
stuCardMapper.deleteStuCard(stuid);
return personMapper.deletePerson(id);
}
@Override
public int updatePerson(Person person) {
stuCardMapper.updateStuCard(person.getStuCard());
return personMapper.updatePerson(person);
}
}

View File

@ -0,0 +1,20 @@
package com.liulingzhi.springboot.springboot.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.liulingzhi.springboot.springboot.dao.StudentMapper;
import com.liulingzhi.springboot.springboot.model.Student;
import com.liulingzhi.springboot.springboot.service.IStudentService;
import org.springframework.stereotype.Service;
/**
* <p>
* 服务实现类
* </p>
*
* @author 作者是橘子
* @since 2024-10-18
*/
@Service
public class StudentServiceImpl extends ServiceImpl<StudentMapper, Student> implements IStudentService {
}

View File

@ -0,0 +1,33 @@
package com.liulingzhi.springboot.springboot;
import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;
import java.nio.file.Paths;
public class test {
public static void main(String[] args) {
FastAutoGenerator.create("jdbc:mysql://10.33.66.120:3306/mybatis202201020121?serverTimezone=UTC",
"202201020121",
"@hnucm1254")
.globalConfig(builder -> builder
.author("作者是橘子")
.outputDir(Paths.get(System.getProperty("user.dir")) + "/src/main/java")
.commentDate("yyyy-MM-dd")
)
.packageConfig(builder -> builder
.parent("com.baomidou.mybatisplus")
.entity("model")
.mapper("mapper")
.service("service")
.serviceImpl("service.impl")
.xml("mapper.xml")
)
.strategyConfig(builder -> builder
.entityBuilder()
.enableLombok()
)
.templateEngine(new FreemarkerTemplateEngine())
.execute();
}
}

View File

@ -2,4 +2,21 @@ spring.application.name=springboot
#server.port=8080
spring.web.resources.static-locations=classpath:/img/,file:D:/Desktop/??/
spring.servlet.multipart.max-file-size=1024MB
spronging.servlet.multipart.max-request-size=10240MB
spronging.servlet.multipart.max-request-size=10240MB
#???????
# ??????
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
# ?????
spring.datasource.name=defaultDataSource
# ???????
spring.datasource.url=jdbc:mysql://10.33.66.120:3306/mybatis202201020121?serverTimezone=UTC
# ??????&???
spring.datasource.username=202201020121
spring.datasource.password=@hnucm1254
#??????????MyBatis??
#??Mybatis?Mapper??
mybatis-plus.mapper-locations=classpath:mapper/*.xml
#??Mybatis?????
mybatis-plus.type-aliases-package=com.liulingzhi.springboot.springboot.model
#????
logging.level.com.liulingzhi.springboot.springboot = debug

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liulingzhi.springboot.springboot.dao.OrderMapper">
<select id="findOrderByPersonId" resultMap="orderMapper">
select * from order1 where personid=#{persnonId}
</select>
<resultMap id="orderMapper" type="com.liulingzhi.springboot.springboot.model.Order">
<id property="id" column="id"></id>
<result property="personid" column="personid"></result>
<result property="orderprice" column="orderprice"></result>
<result property="orderinfo" column="orderinfo"></result>
<collection property="productList"
ofType="com.liulingzhi.springboot.springboot.model.Product"
column="id"
select="com.liulingzhi.springboot.springboot.dao.ProductMapper.findProductByOrderId">
</collection>
</resultMap>
</mapper>

View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liulingzhi.springboot.springboot.dao.PersonMapper">
<select id="getAllPerson" resultMap="personMap">
select * from person
</select>
<resultMap id="personMap" type="com.liulingzhi.springboot.springboot.model.Person">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="age" property="age"/>
<association property="stuCard"
javaType="com.liulingzhi.springboot.springboot.model.StuCard"
column="stucardid"
select="com.liulingzhi.springboot.springboot.dao.StuCardMapper.findStuCardById"/>
<collection property="orderList"
ofType="com.liulingzhi.springboot.springboot.model.Order"
column="id"
select="com.liulingzhi.springboot.springboot.dao.OrderMapper.findOrderByPersonId"/>
</resultMap>
<insert id="addPerson" parameterType="com.liulingzhi.springboot.springboot.model.Person">
insert into person(name,age,stucardid) values(#{name},#{age},#{stuCard.id})
</insert>
<delete id="deletePerson" parameterType="int">
delete from person where id=#{id}
</delete>
<update id="updatePerson" parameterType="com.liulingzhi.springboot.springboot.model.Person">
update person set name=#{name},age=#{age} where id=#{id}
</update>
</mapper>

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liulingzhi.springboot.springboot.dao.ProductMapper">
<select id="findProductByOrderId" resultType="com.liulingzhi.springboot.springboot.model.Product">
select * from product where id in (select productid from order_product where orderid=#{orderId})
</select>
</mapper>

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liulingzhi.springboot.springboot.dao.StuCardMapper">
<select id="findStuCardById" resultType="com.liulingzhi.springboot.springboot.model.StuCard">
select * from stucard where id = #{id}
</select>
<insert id="addStuCard"
useGeneratedKeys="true"
keyProperty="id"
parameterType="com.liulingzhi.springboot.springboot.model.StuCard">
insert into stucard(classname,stuid) values(#{classname},#{stuid})
</insert>
<delete id="deleteStuCard" parameterType="int">
delete from stucard where id=#{id}
</delete>
<update id="updateStuCard" parameterType="com.liulingzhi.springboot.springboot.model.StuCard">
update stucard set classname=#{classname},stuid=#{stuid} where id=#{id}
</update>
</mapper>

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.liulingzhi.springboot.springboot.dao.StudentMapper">
</mapper>

View File

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>添加页面</h1>
<form action="/addpersoncommit" method="post">
<input type="text" name="name" placeholder="请输入姓名"/></br>
<input type="text" name="age" placeholder="请输入年龄"/></br>
<input type="text" name="classname" placeholder="请输入班级"/></br>
<input type="text" name="stuid" placeholder="请输入学号"/></br>
<input type="submit" value="添加用户"/>
</form>
<a href="/personpage">返回</a>
</body>
</html>

View File

@ -22,7 +22,7 @@
</form>
<img src ="/01.png"style="width: 300px;height: 200px" />
<img src ="/01.png" alt="图片" style="width: 300px;height: 200px" />
</body>
</html>

View File

@ -0,0 +1,59 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>person页面</h1>
<a href="/addpersonpage">添加</a>
<table border="1">
<tr>
<td>id</td>
<td>姓名</td>
<td>年龄</td>
<td>订单</td>
<td>班级</td>
<td>学号</td>
<td>删除操作</td>
<td>更新操作</td>
</tr>
<tr th:each="person:${personList}">
<td th:text="${person.id}"></td>
<td th:text="${person.name}"></td>
<td th:text="${person.age}"></td>
<td th:if="${person.orderList}!=null">
<ul>
<li th:each="order:${person.orderList}">
<span th:text="${order.orderinfo}"></span>
<span th:text="${order.orderprice}"></span>
<div th:if="${order.productList}!=null"
th:each="product:${order.productList}">
<span th:text="${product.productname}"></span>
<span th:text="${product.productprice}"></span>
</div>
</li>
</ul>
</td>
<div th:if="${person.stuCard}!=null">
<td th:text="${person.stuCard.classname}"></td>
<td th:text="${person.stuCard.stuid}"></td>
<td><a th:href="@{/deleteperson(id=${person.id},stuid=${person.stuCard.id} )}">删除</a></td>
<td><a th:href="@{/updatepersonpage(
id=${person.id},
name=${person.name},
age=${person.age},
stucardid=${person.stuCard.id},
stuid=${person.stuCard.stuid},
classname=${person.stuCard.classname})}">更新</a></td>
</div>
</tr>
</table>
</body>
</html>

View File

@ -0,0 +1,21 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>更新页面</h1>
<div th:text="${id}"></div>
<form action="/updatepersoncommit" method="post">
<input type="text" name="id" hidden th:value="${id}" placeholder="请输入id"/></br>
<input type="text" name="name" th:value="${name}" placeholder="请输入用户名"/></br>
<input type="text" name="age" th:value="${age}" placeholder="请输入年龄"/></br>
<input type="text" name="stucardid" hidden th:value="${stucardid}" placeholder="请输入学号"/></br>
<input type="text" name="stuid" th:value="${stuid}" placeholder="请输入学号"/></br>
<input type="text" name="classname" th:value="${classname}" placeholder="请输入班级"/></br>
<input type="submit" value="更新"/>
</form>
</body>
</html>