案例:请假条管理系统2024-11-22

news/2024/12/26 0:20:45/文章来源:https://www.cnblogs.com/qiixunlu/p/18631689

整体框架


pojo:Student:

点击查看代码
package com.QixunQiu.pojo;public class Student {int  id  ;String StudentId ;String StudentName   ;String StudentSex ;String StudentLeave ;String StudentCollege ;String StudentSpecialty ;String StudentClass ;String StudentReason ;String StudentDate ;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getStudentName() {return StudentName;}public void setStudentName(String studentName) {StudentName = studentName;}public String getStudentId() {return StudentId;}public void setStudentId(String studentId) {StudentId = studentId;}public String getStudentSex() {return StudentSex;}public void setStudentSex(String studentSex) {StudentSex = studentSex;}public String getStudentClass() {return StudentClass;}public void setStudentClass(String studentClass) {StudentClass = studentClass;}public String getStudentLeave() {return StudentLeave;}public void setStudentLeave(String studentLeave) {StudentLeave = studentLeave;}public String getStudentCollege() {return StudentCollege;}public void setStudentCollege(String studentCollege) {StudentCollege = studentCollege;}public String getStudentSpecialty() {return StudentSpecialty;}public void setStudentSpecialty(String studentSpecialty) {StudentSpecialty = studentSpecialty;}public String getStudentReason() {return StudentReason;}public void setStudentReason(String studentReason) {StudentReason = studentReason;}public String getStudentDate() {return StudentDate;}public void setStudentDate(String studentDate) {StudentDate = studentDate;}@Overridepublic String toString() {return "Student{" +"id=" + id +", StudentId='" + StudentId + '\'' +", StudentName='" + StudentName + '\'' +", StudentSex='" + StudentSex + '\'' +", StudentLeave='" + StudentLeave + '\'' +", StudentCollege='" + StudentCollege + '\'' +", StudentSpecialty='" + StudentSpecialty + '\'' +", StudentClass='" + StudentClass + '\'' +", StudentReason='" + StudentReason + '\'' +", StudentDate='" + StudentDate + '\'' +'}';}
}
StudentService:
点击查看代码
package com.QixunQiu.service;import com.QixunQiu.mapper.StudentMapper;
import com.QixunQiu.pojo.Student;
import com.QixunQiu.util.SqlSessionFactoryUtils;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;import java.util.List;public class StudentService {SqlSessionFactory sqlSessionFactory = SqlSessionFactoryUtils.getSqlSessionFactory();public void add(Student student){SqlSession sqlSession = sqlSessionFactory.openSession();StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);System.out.println("wjhddj");studentMapper.addStudent(student);System.out.println("hi的");sqlSession.commit();sqlSession.close();}public List<Student> selectAll(){SqlSession sqlSession = sqlSessionFactory.openSession();StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);List<Student> StudentSelectAll=studentMapper.selectAll();sqlSession.close();return StudentSelectAll;}public Student selectById(String StudentId){SqlSession sqlSession = sqlSessionFactory.openSession();StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);System.out.println(StudentId);Student student=studentMapper.selectById(StudentId);sqlSession.close();return student;}public List<Student> selectBythree(Student student){SqlSession sqlSession = sqlSessionFactory.openSession();StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);List<Student> cls=studentMapper.selectBythree(student);sqlSession.close();return cls;}public void update(Student student){SqlSession sqlSession = sqlSessionFactory.openSession();StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);System.out.println("提交前");studentMapper.updateStudent(student);System.out.println("提交后期");sqlSession.commit();sqlSession.close();}public void delete(int id ){SqlSession sqlSession = sqlSessionFactory.openSession();StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);studentMapper.deleteById(id);sqlSession.commit();sqlSession.close();}}
SqlSessionFactoryUtils:
点击查看代码
package com.QixunQiu.util;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;import java.io.IOException;
import java.io.InputStream;public class SqlSessionFactoryUtils {private static SqlSessionFactory sqlSessionFactory;static {//静态代码块会随着类的加载而自动执行,且执行一次try {String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);} catch (IOException e) {throw new RuntimeException(e);}}public static SqlSessionFactory getSqlSessionFactory() {return sqlSessionFactory;}
}
StudentMapper:
点击查看代码
package com.QixunQiu.mapper;import com.QixunQiu.pojo.Student;import java.util.List;public interface StudentMapper {void addStudent(Student student);Student selectById(String StudentId);int updateStudent(Student student);void deleteById(int id);List<Student> selectBythree(Student student);List<Student> selectAll();
}
StudentMapper.xml:
点击查看代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.QixunQiu.mapper.StudentMapper"><insert id="addStudent">insert into student (StudentId, StudentName, StudentSex, StudentLeave,StudentCollege,StudentSpecialty,StudentClass,StudentReason,StudentDate)values (#{StudentId}, #{StudentName}, #{StudentSex}, #{StudentLeave}, #{StudentCollege},#{StudentSpecialty}, #{StudentClass}, #{StudentReason}, #{StudentDate});</insert><update id="updateStudent">update student<set><if test="StudentReason != null and StudentReason != '' ">StudentReason = #{StudentReason},</if><if test="StudentDate != null and StudentDate != '' ">StudentDate = #{StudentDate},</if></set>where id = #{id};</update><delete id="deleteById">delete from student where id = #{id}</delete><select id="selectById" resultType="com.QixunQiu.pojo.Student">select *from studentwhere StudentId = #{StudentId}</select><select id="selectBythree" resultType="com.QixunQiu.pojo.Student">select *from student<where><choose><when test="StudentId != null and StudentId != ''">StudentId = #{StudentId}</when><when test="StudentReason != null and StudentReason != '' ">StudentReason like #{StudentReason}</when><when test="StudentDate != null and StudentDate != '' ">StudentDate like #{StudentDate}</when></choose></where></select><select id="selectAll" resultType="com.QixunQiu.pojo.Student">select * from student;</select>
</mapper>
mybatis-config.xml:
点击查看代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><typeAliases>
<!--        记得修改名称--><package name="com.QixunQiu.pojo"/></typeAliases><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<!--                数据库名称--><property name="url" value="jdbc:mysql:///student1122?useSSL=false&amp;serverTimezone=Hongkong&amp;characterEncoding=utf-8&amp;autoReconnect=true&amp;userServerPreStmts=true"/><property name="username" value="root"/><property name="password" value="1234"/></dataSource></environment></environments><mappers><!--扫描mapper--><package name="com.QixunQiu.mapper"/></mappers>
</configuration>
addStudentServlet:
点击查看代码
package com.QixunQiu.web;import com.QixunQiu.pojo.Student;
import com.QixunQiu.service.StudentService;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;@WebServlet("/addStudentServlet")
public class addStudentServlet extends HttpServlet {private StudentService service = new StudentService();@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");String StudentId = request.getParameter("StudentId");String StudentName = request.getParameter("StudentName");String StudentSex=request.getParameter("StudentSex");String StudentLeave=request.getParameter("StudentLeave");String StudentCollege=request.getParameter("StudentCollege");String StudentSpecialty=request.getParameter("StudentSpecialty");String StudentClass=request.getParameter("StudentClass");String StudentReason=request.getParameter("StudentReason");String StudentDate = request.getParameter("StudentDate");Student student = new Student();student.setStudentId(StudentId);student.setStudentName(StudentName);student.setStudentSex(StudentSex);student.setStudentLeave(StudentLeave);student.setStudentCollege(StudentCollege);student.setStudentSpecialty(StudentSpecialty);student.setStudentClass(StudentClass);student.setStudentReason(StudentReason);student.setStudentDate(StudentDate);System.out.println("dnwidji");service.add(student);request.getRequestDispatcher("/selectAllStudent").forward(request,response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}
deleteStudentServlet:
点击查看代码
package com.QixunQiu.web;import com.QixunQiu.pojo.Student;
import com.QixunQiu.service.StudentService;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/deleteStudentServlet")
public class deleteStudentServlet extends HttpServlet {private StudentService service = new StudentService();@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");String id = request.getParameter("id");service.delete(Integer.parseInt(id));request.getRequestDispatcher("/selectAllStudent").forward(request,response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}

selectAllStudent:

点击查看代码
package com.QixunQiu.web;import com.QixunQiu.pojo.Student;
import com.QixunQiu.service.StudentService;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.List;@WebServlet("/selectAllStudent")
public class selectAllStudent extends HttpServlet {private StudentService service = new StudentService();@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");List<Student> cls = service.selectAll();//存入request域中request.setAttribute("cls",cls);//转发request.getRequestDispatcher("/printList.jsp").forward(request,response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}

selectStudentByIdServlet:

点击查看代码
package com.QixunQiu.web;import com.QixunQiu.pojo.Student;
import com.QixunQiu.service.StudentService;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/selectStudentByIdServlet")
public class selectStudentByIdServlet extends HttpServlet {private StudentService service = new StudentService();@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");String id = request.getParameter("StudentId");Student student=service.selectById(id);request.setAttribute("Student", student);request.getRequestDispatcher("/update.jsp").forward(request,response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}
selectStudentBythreeServlet:
点击查看代码
package com.QixunQiu.web;import com.QixunQiu.pojo.Student;
import com.QixunQiu.service.StudentService;import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;
import java.io.IOException;
import java.util.List;@WebServlet("/selectStudentBythreeServlet")
public class selectStudentBythreeServlet extends HttpServlet {private StudentService service = new StudentService();@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");String StudentReason = request.getParameter("StudentReason");String StudentDate=request.getParameter("StudentDate");String StudentId =request.getParameter("StudentId");Student student = new Student();student.setStudentReason(StudentReason);student.setStudentDate(StudentDate);student.setStudentId(StudentId);List<Student> cls=service.selectBythree(student);System.out.println(cls);request.setAttribute("cls",cls);request.getRequestDispatcher("/printList.jsp").forward(request,response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}
selectToStudent:
点击查看代码
package com.QixunQiu.web;import com.QixunQiu.pojo.Student;
import com.QixunQiu.service.StudentService;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/selectToStudent")
public class selectToStudent extends HttpServlet {private StudentService service = new StudentService();@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");String StudentId = request.getParameter("StudentId");Student student=service.selectById(StudentId);request.setAttribute("Student", student);request.getRequestDispatcher("/delete.jsp").forward(request,response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}
updateStudentServlet:
点击查看代码
package com.QixunQiu.web;import com.QixunQiu.pojo.Student;
import com.QixunQiu.service.StudentService;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;@WebServlet("/updateStudentServlet")
public class updateStudentServlet extends HttpServlet {private StudentService service = new StudentService();@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");String id = request.getParameter("id");String StudentReason=request.getParameter("StudentReason");String StudentDate = request.getParameter("StudentDate");//封装对象Student student = new Student();student.setId(Integer.parseInt(id));student.setStudentReason(StudentReason);student.setStudentDate(StudentDate);service.update(student);request.getRequestDispatcher("/selectAllStudent").forward(request,response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {this.doGet(request, response);}
}
web前端: addStudent.html
点击查看代码
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>假条申请</title>
</head>
<body>
<h2>假条申请</h2>
<form id="add-form" action="/Student1122/addStudentServlet" method="post">学号:<input name="StudentId" type="text" id="StudentId" ><br>姓名:<input name="StudentName" type="text" id="StudentName" ><br>性别:<input name="StudentSex" type="text" id="StudentSex" ><br>年级:<input name="StudentLeave" type="text" id="StudentLeave" ><br>学院:<input name="StudentCollege" type="text" id="StudentCollege" ><br>专业:<input name="StudentSpecialty" type="text" id="StudentSpecialty" ><br>班级:<input name="StudentClass" type="text" id="StudentClass" ><br>请假理由:<input name="StudentReason" type="text" id="StudentReason" ><br>请假时间:<input name="StudentDate" type="text" id="StudentDate" ><br><div class="buttons"><input value="添加申请" type="submit" id="add_btn"></div><br class="clear">
</form></body>
</html>
delete.jsp:
点击查看代码
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>删除申请</title>
</head>
<body>
<h2>删除申请</h2>
<form id="delete-form" action="/Student1122/selectToStudent" method="post">学号:<input name="StudentId" type="text" id="StudentId" required><br><div class="buttons"><input value="删除申请" type="submit" id="delete_btn"></div><br class="clear">
</form></body>
</html>
fixStudent.html:
点击查看代码
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>修改申请</title>
</head>
<body>
<h2>修改申请</h2>
<form id="modify-form" action="/Student1122/selectStudentByIdServlet" method="post">课程编号:<input name="StudentId" type="text" id="StudentId" required><br><div class="buttons"><input value="修改申请" type="submit" id="delete_btn"></div><br class="clear">
</form></body>
</html>
index.html:
点击查看代码
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>请假条管理系统</title><script>function addStudent() {window.location.href = "addStudent.html";}function fixStudent() {window.location.href = "fixStudent.html";}function deleteStudent() {window.location.href = "deleteStudent.html";}function searchStudent() {window.location.href = "searchStudent.html";}</script>
</head>
<body>
<h1>请假条管理系统</h1>
<button onclick="addStudent()">假条申请</button>
<button onclick="fixStudent()">修改申请</button>
<button onclick="deleteStudent()">删除申请</button>
<button onclick="searchStudent()">查询申请</button>
</body>
</html>
printList.jsp:
点击查看代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page isELIgnored="false" %><!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script>function Back() {window.location.href = "index.html";}</script>
</head>
<body>
<hr>
<table border="1" cellspacing="0" width="80%"><tr><th>序号</th><th>姓名</th><th>学院</th><th>专业</th><th>班级</th><th>请假时间</th><th>请假理由</th></tr><c:forEach items="${cls}" var="Student" varStatus="status"><tr align="center"><td>${status.count}</td><td>${Student.getStudentName()}</td><td>${Student.getStudentCollege()}</td><td>${Student.getStudentSpecialty()}</td><td>${Student.getStudentClass()}</td><td>${Student.getStudentDate()}</td><td>${Student.getStudentReason()}</td></tr></c:forEach>
</table><button onclick="Back()">返回首页</button></body>
</html>
searchStudent.html:
点击查看代码
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>查询申请</title>
</head>
<body>
<h2>查询申请</h2>
<form id="search-form" action="/Student1122/selectStudentBythreeServlet" method="post">请假时间:<input name="StudentReason" type="text" id="StudentReason" ><br>请假理由:<input name="StudentDate" type="text" id="StudentDate" ><br>学号:<input name="StudentId" type="text" id="StudentId" ><br><div class="buttons"><input value="查询申请" type="submit" id="add_btn"></div><br class="clear">
</form></body>
</html>
update.jsp:
点击查看代码
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page isELIgnored="false" %><!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>修改申请</title>
</head>
<body>
<h2>修改申请</h2>
<form action="${pageContext.request.contextPath}/updateStudentServlet" method="post"><%--隐藏域,提交id--%><input type="hidden" name="id" value="${Student.id}">请假理由:<input name="StudentReason" type="text" id="StudentReason" value="${Student.getStudentReason()}"><br>请假时间:<input name="StudentDate" type="text" id="StudentDate" value="${Student.getStudentDate()}"><br><div class="buttons"><input value="修改申请" type="submit" id="add_btn"></div><br class="clear">
</form></body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/858946.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

梦幻神器-起-魔犀角之怒-1星

1-该任务需要提前准备5个佛光舍利子或者九转回魂丹,也可以混搭,凑够5个即可。 2-号一般的推荐带5个血供慢慢打,底子好、须弥强的可以带5个须弥速推。 3-前面的战斗比较简单,没有什么技巧 4-在打boss之前,需要我们找小食铁兽。 5-在大唐(60,83)捡起小袋子、(99,54)拾起残存…

Elasticsearch filter context 的使用原理

ES querycache 加速匹配的方法 前言 ES 进行信息检索的时候,boolean 查询组合条件有 must/must_not/should/filter 四个操作。其中 must 和 filter 的用途都是用于过滤必要符合的条件,但是 filter 在查询过程中不算分并且可以进行缓存,这样逻辑简单又可以加速的查询方式经常…

[转]教大家如何选择正确的Google Play服务

前言全局说明来源:https://blog.csdn.net/luo2757227663/article/details/104514864一、说明 1.1 环境: android二、 想必不少刚入坑的小伙伴就经历了各种play服务的问题 而实际上,这些问题大部分来自于未能正确找到play服务的版本 好啦,我们通过这一贴来教大家如何快速找到…

hot100-一刷-12栈(共5道题)

20. 有效的括号 题目链接 题目描述代码实现 分析: 代码: class Solution {public boolean isValid(String s) {int n = s.length();if(n % 2 == 1) return false;Deque<Character> st = new LinkedList<>();for (char c : s.toCharArray()){if(c == () {st.push(…

模型训练中性能指标

在机器学习和深度学习的模型训练过程中,评估模型性能是至关重要的一环。不同的任务和应用场景可能会采用不同的评估指标,常见的包括 准确率(Accuracy)、精确率(Precision)、召回率(Recall)和 均值平均精度(mAP)。本文将介绍这些评估指标的定义、计算方法及其在实际中…

ThreeJs-083D动画系统详解

一.动画原理和应用 three的动画大概就是通过不同时间的关键帧来实现 加载一个手机模型在这个对象里面,注意后期都是直接通过可视化软件Blender编辑好关键帧就能实现动画,这也是个已经编辑好的动画模型,在这个对象里面有一个animations就是动画集,也就是这个物体可以有很多个…

day1——伙伴匹配学习笔记

了解了一些Java8特性lambda语法 (parameters) -> expression (parameters) -> { statements; }相当于是函数的另一种写法,更优雅。stream()用法以及和parallelStream()的一些对比 详见博客 java8新特性-流-stream()和parallelStream() 求求你们了,别再乱用 parallelStr…

如何获取局域网内所有IP

cmd命令: ipconfig/ALL 这时会在cmd命令窗口看见自己电脑的IP地址,记下来cmd命令窗口输入 for /L %i IN (1,1,254) DO ping -w 2 -n 1 192.168.0.%i (注意:我这里的192.168.0.*是根据自己电脑的ip网段来填写的) 待几分钟后 命令处理完成,然后在cmd命令窗口输入 arp -a第七步…

对话 Project Astra 研究主管:打造通用 AI 助理,主动视频交互和全双工对话是未来重点

Project Astra 愿景之一:「系统不仅能在你说话时做出回应,还能在持续的过程中帮助你。」近期,Google DeepMind 的 YouTube 频道采访了 Google DeepMind 研究主管格雷格韦恩 (Greg Wayne)。格雷格韦恩的研究工作为 DeepMind 的诸多突破性成果做出了重要贡献,涵盖强化学习、神…

3 三角翼

3 三角翼 概念 在很大程度上,基于二维流动和高展弦比无后掠三维翼型流动的证据,流动分离一直被视为应不惜一切代价避免的现象。 然而,人们发现,高速飞行所需的低展弦比、高度后掠的机翼,尽管其上表面已经发生了分离流动,但随着迎角的增加,升力也会增加。 剪切层由机翼跨…