1. 题目要求
按照图片要求设计添加新课程界面。(0.5分) 在后台数据库中建立相应的表结构存储课程信息。(0.5分) 实现新课程添加的功能。 要求判断任课教师为王建民、刘立嘉、刘丹、王辉、杨子光五位教师的其中一位。(0.5分) 要求上课地点开头为“一教、二教、三教、基教”中的一种。(0.5分) 实现数据存储功能。(3分)
将课堂练习设计思想,源程序代码、运行结果截图的开发过程,并按照PSP0级的要求记录开发过程中的项目计划日志、时间记录日志、缺陷记录日志。 课堂练习的源代码上传到课堂派截止时间周二11月28日(18:00)之前。 博客发表截止时间周二11月28日(20:00)之前发布。
2. 设计思想
1) 首先做出一个界面,然后新建一个jsp文件用来接收传递过来的信息,做出判断,第三个页面(第三个jsp文件)就是处理判断结果是否合法。
2) 对象类、对象的操作和链接数据库的文件都各自单独放在一个文件夹里。
3. 源程序代码
a) add.jsp
<%@page import="com.jaovo.msg.dao.ClassDaoImpl"%>
<%@page import="com.jaovo.msg.model.Classes"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<%
//接收客户端传递过来的参数
String classname = request.getParameter("classname");
String teachername = request.getParameter("teachername");
String address = request.getParameter("address");
if((!teachername.equals("王建民")&&!teachername.equals("刘立嘉")&&!teachername.equals("刘丹")&&!teachername.equals("王辉")&&!teachername.equals("杨子光"))||(!address.startsWith("三教")&&!address.startsWith("二教")&&!address.startsWith("一教")&&!address.startsWith("基教")))
{
%>
<jsp:forward page="fail.jsp"></jsp:forward>
<%
}
else{
Classes classes = new Classes();
classes.setclassname(classname);
classes.setteachername(teachername);
classes.setaddress(address);
ClassDaoImpl dclass = new ClassDaoImpl();
try{
dclass.add(classes);
}catch(NullPointerException e){
e.printStackTrace();
}
}
%>
</html>
b) addInput.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>用户添加页面</title>
</head>
<body>
<form action="add.jsp" method="get">
<table align="center" border="1" width="500">
<tr>
<td>课程名称 : </td>
<td>
<input type="text" name="classname" />
</td>
</tr>
<tr>
<td>任课教师:</td>
<td>
<input type="text" name="teachername" />
</td>
</tr>
<tr>
<td>上课地点:</td>
<td>
<input type="text" name="address" />
</td>
</tr>
<tr align="center">
<td colspan="2">
<input type="submit" value="提交" />
</td>
</tr>
</table>
</form>
</body>
</html>
c) fail.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<h2>信息有误!</h2>
</body>
</html>
d) DBUtil. Class
package com.jaovo.msg.Util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DBUtil {
public static Connection getConnection() {
try {
//1 加载驱动
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String name = "root";
String password = "102012";
String url="jdbc:mysql://localhost:3306/jaovo_class";
Connection connection = null;
try {
//2 创建链接对象connection
connection = DriverManager.getConnection(url,name,password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
}
//关闭资源的方法
public static void close(Connection connection ) {
try {
if (connection != null) {
connection.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void close(PreparedStatement preparedStatement ) {
try {
if (preparedStatement != null) {
preparedStatement.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void close(ResultSet resultSet ) {
try {
if (resultSet != null) {
resultSet.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
e) Classes.class
package com.jaovo.msg.model;
public class Classes {
private int id;
private String classname;
private String teachername;
private String address;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getclassname() {
return classname;
}
public void setclassname(String classname) {
this.classname = classname;
}
public String getteachername() {
return teachername;
}
public void setteachername(String teachername) {
this.teachername = teachername;
}
public String getaddress() {
return address;
}
public void setaddress(String address) {
this.address = address;
}
}
f) IClassDao.class
package com.jaovo.msg.dao;
import java.util.List;
import com.jaovo.msg.model.Classes;
public interface IClassDao {
public void add(Classes user);
}
g) IClassDaoImpl.class
package com.jaovo.msg.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.jaovo.msg.Util.DBUtil;
import com.jaovo.msg.model.Classes;
public class ClassDaoImpl implements IClassDao {
public void add(Classes classes) {
//获得链接对象
Connection connection = DBUtil.getConnection();
//准备sql语句
String sql = "insert into t_class(classname,teachername,address) value (?,?,?)";
//创建语句传输对象
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, classes.getclassname());
preparedStatement.setString(2, classes.getteachername());
preparedStatement.setString(3, classes.getaddress());
preparedStatement.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
//关闭资源
DBUtil.close(preparedStatement);
DBUtil.close(connection);
}
}
}
4. 运行结果截图
5. 项目计划日志
无
备注:这是一个小课堂测试
本来是早上上课可以完成的一个作业,因为我之前没有好好探究这些问题,导致今天我折腾了一天。
6.
时间记录日志
日期 |
开始 |
结束 |
中断时间 |
净时间 |
活动 |
备注 |
周二 |
9:15 |
10:00 |
0 |
45min |
课堂测试 |
|
|
10:10 |
11:50 |
0 |
100 |
接着写课堂测试的作业 |
|
|
16:00 |
21:00 |
30min |
270min |
同上 |
吃饭 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7.
缺陷记录日志
日期 |
编号 |
类型 |
引入阶段 |
排除阶段 |
修复时间 |
修复缺陷 |
11/28 |
1 |
思路 |
设计思路 |
设计思路 |
10 |
分装 |
|
2 |
代码实现 |
代码实现 |
代码实现 |
25 |
语法,书写错误 |
|
3 |
调试 |
调试阶段 |
调试阶段 |
25 |
数据库表设计 |