讲师和班主任每个教学周期都会有效果测评,现对我们的老师进行模拟测评,做一个测评网站,编写的目的在于更好的学习JavaWeb,若文章对你有所收获,末尾记得一键三连
一:实现的功能:
新增测评
点击删除,提示“确认删除吗”,点击确认后删除,点击取消后取消删除
.点击详情页展示如图信息
二:建库建表
注意:sid 可以是主键自增,外键不要关联错误
CREATE DATABASE a5;
use a5;
CREATE TABLE score(
sid int PRIMARY key auto_increment,
id int,
ji DOUBLE (8,2),
xing DOUBLE (8,2),
gou DOUBLE (8,2),
ke DOUBLE (8,2),
qin DOUBLE (8,2),
yijian VARCHAR (20),
time VARCHAR (20),
FOREIGN key (id) REFERENCES teacher(tid)
)
CREATE TABLE teacher
( tid int PRIMARY key,
tname VARCHAR (20));
insert into teacher values
(1,'詹姆斯'),
(2,'科比'),
(3,'小明');
insert into score values
(1,1,19.9,20.0,20.0,20.0,19.9,'声音要在大点','2020-12-1'),
(2,2,20.0,20.0,20.0,20.0,20.0,'老师再严厉一点','2020-12-1');
select s.*,(ji+xing+gou+ke+qin) sum,tname from score s, teacher t where s.id=t.tid
打开自己的开发工具;
创建三层架构:
1 控制器; controller
2业务层 service
3 数据层 dao层
4 实体类 封装
1、展示所有的代码:
controller:
注意:一定要存入域 转发前端
request.setCharacterEncoding ("utf-8");
response.setContentType ("text/html;charset=utf-8");
service service = new service ();
List<Score>list= service.show ();
request.setAttribute ("list",list);
//转发
request.getRequestDispatcher ("show.jsp").forward (request, response);
service: 代码:
package service;
import dao.dao;
import pojo.Score;
import java.util.List;
public class service implements s1 {
dao w=new dao ();
@Override
public List<Score> show() {
return w.show ();
}
@Override
public void add(Score a) {
w.add (a);
}
@Override
public void set(Score a) {
w.set (a);
}
public void shan(String sid) {
w.shan(sid);
}
public Score geti(String sid) {
return w.getid(sid);
}
public List<Score> show2() {
return w.dsd();
}
}
dao层代码:
package dao;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import pojo.Score;
import java.sql.SQLException;
import java.util.List;
public class dao implements d1{
QueryRunner q=new QueryRunner (new ComboPooledDataSource ());
@Override
public List<Score> show() {
List<Score> query = null;
try {
query = q.query ("select s.*,(ji+xing+gou+ke+qin) sum,tname from score s, teacher t where s.id=t.tid", new BeanListHandler<> (Score.class));
} catch (SQLException e) {
e.printStackTrace ();
}
return query;
}
@Override
public void add(Score a) {
try {
q.update ("insert into score (id,ji,xing,gou,ke,qin,yijian,time) values (?,?,?,?,?,?,?,?)",a.getId (),
a.getJi (),a.getXing (),a.getGou (),a.getKe (),a.getQin (),a.getYijian (),a.getTime ());
} catch (SQLException e) {
e.printStackTrace ();
}
}
@Override
public void set(Score a) {
}
public void shan(String sid) {
try {
q.update ("delete from score where sid=?",sid);
} catch (SQLException e) {
e.printStackTrace ();
}
}
public Score getid(String sid) {
Score query = null;
try {
query = q.query ("select s.*,(ji+xing+gou+ke+qin) sum,tname from score s, teacher t where s.id=t.tid and sid=?", new BeanHandler<> (Score.class), sid);
} catch (SQLException e) {
e.printStackTrace ();
}
return query;
}
public List<Score> dsd() {
List<Score> query = null;
try {
query = q.query ("select avg((ji+xing+gou+ke+qin))zong from score s, teacher t where s.id=t.tid", new BeanListHandler<> (Score.class));
} catch (SQLException e) {
e.printStackTrace ();
}
return query;
}
}
前端展示:
新增和新增测评是按钮的形式:也不要忘记导标签<script>的包
<%--
Created by IntelliJ IDEA.
User: dell
Date: 2021/8/26
Time: 21:59
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<html>
<head>
<title>Title</title>
<script src="js/jquery-1.7.2.js"></script>
<script>
</script>
</head>
<body>
<input type="button" value="新增测评" onclick="w2()">
<input type="button" value="统计平均分" onclick="w3()">
<table cellpadding="0" border="1" width="600" height="300">
<tr>
<td>编号</td>
<td>老师</td>
<td>技术</td>
<td>形象</td>
<td>沟通</td>
<td>授课</td>
<td>亲和</td>
<td>总分</td>
<td>意见</td>
<td>时间</td>
<td>操作</td>
</tr>
<c:forEach items="${list}" var="a" >
<tr>
<td>${a.sid}</td>
<td>${a.tname}</td>
<td>${a.ji}</td>
<td>${a.xing}</td>
<td>${a.gou}</td>
<td>${a.ke}</td>
<td>${a.qin}</td>
<td>${a.sum}</td>
<td>${a.yijian}</td>
<td>${a.time}</td>
<td>
<a href="/de?sid=${a.sid}" onclick="return confirm('是否删除')">删除</a>
<a href="/xiu?sid=${a.sid}">详情页</a> </td>
</tr>
</c:forEach>
</table>
</body>
<script>
function w2() {
$.get("add.jsp",function (data) {
location.href="/show1"
})
}
function w3() {
$.get("add.jsp",function (data) {
location.href="/pin"
})
}
</script>
</html>
新增的代码:
注意:分数是复选框 下拉框教师的信息是:name="id" 是从表的外键,不要写错
<%--
Created by IntelliJ IDEA.
User: dell
Date: 2021/8/26
Time: 22:04
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<html>
<head>
<title>Title</title>
<script>
</script>
</head>
<body>
<form action="/add" method="post">
教师 <select name="id">
<option>--请选择教师-</option>
<c:forEach var="w" items="${list}">
<option value="${w.tid}">${w.tname}</option>
</c:forEach>
</select> <br>
技术
<input type="checkbox" name="ji" value="19.6"> 19.6
<input type="checkbox" name="ji" value="19.7"> 19.7
<input type="checkbox" name="ji" value="19.8"> 19.8
<input type="checkbox" name="ji" value="19.9"> 19.9
<input type="checkbox" name="ji" value="20.0"> 20.0
<br>
形象
<input type="checkbox" name="xing" value="19.6"> 19.6
<input type="checkbox" name="xing" value="19.7"> 19.7
<input type="checkbox" name="xing" value="19.8"> 19.8
<input type="checkbox" name="xing" value="19.9"> 19.9
<input type="checkbox" name="xing" value="20.0"> 20.0
<br>
沟通
<input type="checkbox" name="gou" value="19.6"> 19.6
<input type="checkbox" name="gou" value="19.7"> 19.7
<input type="checkbox" name="gou" value="19.8"> 19.8
<input type="checkbox" name="gou" value="19.9"> 19.9
<input type="checkbox" name="gou" value="20.0"> 20.0
<br>
授课
<input type="checkbox" name="ke" value="19.6"> 19.6
<input type="checkbox" name="ke" value="19.7"> 19.7
<input type="checkbox" name="ke" value="19.8"> 19.8
<input type="checkbox" name="ke" value="19.9"> 19.9
<input type="checkbox" name="ke" value="20.0"> 20.0
<br>
亲和
<input type="checkbox" name="qin" value="19.6"> 19.6
<input type="checkbox" name="qin" value="19.7"> 19.7
<input type="checkbox" name="qin" value="19.8"> 19.8
<input type="checkbox" name="qin" value="19.9"> 19.9
<input type="checkbox" name="qin" value="20.0"> 20.0
<br>
意见
<input type="text" name="yijian"> <br>
时间
<input type="text" name="time"> <br>
<input type="submit" value="增加"> <br>
</form>
</body>
<script>
</script>
</html>