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

数据库表设计