将课堂练习设计思想,源程序代码、运行结果截图的开发过程,并按照PSP0级的要求记录开发过程中的项目计划日志、时间记录日志、缺陷记录日志。
1、课堂练习设计思想:
①第一步就是先在.jsp文件中绘制出界面,采用h2绘制标题“课程导入”,加上分割线使界面更加美观,正体部分则使用
②在数据库中建立表kecheng,三列数据classname,teacher,place分别是课程名称、任课教师和上课地点。
③在src中建立工具包存放GBUtil.java用来连接数据库,采用utf-8字符集,防止中文乱码。
④建立KechengDao.java来实现接口IKecheng.java,包含一个add函数,用来完成向数据库中添加数据的操作。
⑤建立kecheng.jsp作为kechengjiemian.jsp的后台程序,取得输入的参数并判断验证,不符合规矩的都返回原界面,符合的才能成功保存到数据库。
⑥成功添加后点击继续添加超链接,返回导入界面继续操作。
2、程序源代码:
Ikecheng.java:
packagekechengjiemian.gb.dao;importkechengjiemian.gb.model.Kecheng;public interfaceIkecheng
{public voidadd(Kecheng kecheng);
}
KechengDao.java
packagekechengjiemian.gb.dao;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importkechengjiemian.gb.Util.GBUtil;importkechengjiemian.gb.model.Kecheng;public class KechengDao implementsIkecheng
{
@Overridepublic voidadd(Kecheng kecheng)
{
Connection connection=GBUtil.getConnection();
PreparedStatement preparedStatement=null;
ResultSet resultSet=null;
String sql="insert into kecheng (classname,teacher,place) value (?,?,?);";try{
preparedStatement=connection.prepareStatement(sql);
preparedStatement.setString(1, kecheng.getClassName());
preparedStatement.setString(2, kecheng.getTeacher());
preparedStatement.setString(3, kecheng.getPlace());
preparedStatement.executeUpdate();
}catch(SQLException e)
{
e.printStackTrace();
}finally{
GBUtil.close(connection);
GBUtil.close(preparedStatement);
GBUtil.close(resultSet);
}
}
}
Kecheng.java
packagekechengjiemian.gb.model;public classKecheng
{privateString classname;privateString teacher;privateString place;publicString getClassName()
{returnclassname;
}public voidsetClassName(String classname)
{this.classname =classname;
}publicString getTeacher()
{returnteacher;
}public voidsetTeacher(String teacher)
{this.teacher =teacher;
}publicString getPlace()
{returnplace;
}public voidsetPlace(String place)
{this.place =place;
}
}
GBUtil.java
packagekechengjiemian.gb.Util;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;public classGBUtil
{public staticConnection getConnection()
{try{
Class.forName("com.mysql.jdbc.Driver");
}catch(ClassNotFoundException e)
{
e.printStackTrace();
}
String url="jdbc:mysql://localhost:3306/denglu?useUnicode=true&characterEncoding=utf-8";
Connection connection=null;try{
connection=DriverManager.getConnection(url, "root", "242772");
}catch(SQLException e)
{
e.printStackTrace();
System.out.println("数据库连接失败!");
}returnconnection;
}public static voidclose(Connection connection)
{try{if(connection!=null)
{
connection.close();
}
}catch(SQLException e)
{
e.printStackTrace();
}
}public static voidclose(PreparedStatement preparedStatement)
{try{if(preparedStatement!=null)
{
preparedStatement.close();
}
}catch(SQLException e)
{
e.printStackTrace();
}
}public static voidclose(ResultSet resultSet)
{try{if(resultSet!=null)
{
resultSet.close();
}
}catch(SQLException e)
{
e.printStackTrace();
}
}
}
kecheng.jsp
课程信息String teacher=request.getParameter("teacher");
String place=request.getParameter("place");if(classname==null||"".equals(classname.trim()))
{
request.setAttribute("error", "课程名称不能为空!");%>
{
request.setAttribute("error", "任课教师不能为空!");%>
{
request.setAttribute("error", "上课地点不能为空!");%>
{
request.setAttribute("error", "这个老师不存在,请检查是否名字拼写错误!");%>
{
request.setAttribute("error", "您输入的地点不为教学楼");%>
Kecheng ke=newKecheng();
ke.setClassName(classname);
ke.setTeacher(teacher);
ke.setPlace(place);
KechengDao keDao=newKechengDao();
keDao.add(ke);%>
课程信息保存成功
%>
kechengjiemian.jsp
课程界面课程录入
课程名称 | |
任课教师 | |
上课地点 | |
if(request.getAttribute("error")!=null)
{%>
3、运行结果截图:
jsp调试的时候我设置的弹出到外置浏览器,这是初始界面:
录入信息:
在输入的信息都符合要求的时候,完成提交,并可以点击继续添加返回界面:
当老师的名字不符合要求:
当上课地点不符合要求:
当课程名称为空时:
当任课教师为空时:
当上课地点为空时:
4、项目计划日志:
需求描述:完成一个能判断输入信息并将课程信息导入数据库的web程序。
估计开发时间:四五十分钟。
项目计划数据:填写完成。
时间记录日志:填写完成。
缺陷记录日志:填写完成。
姓名:郭斌
日期:2017/11/28
今天共学习了6小时3分钟,其中完成课堂测试用了63分钟。
5、时间记录日志:
学生:郭斌
日期:2017/11/28
教员:王建民
课程:PSP
6、缺陷记录日志:
学生:郭斌
日期:2017/11/28
教员:王建民
程序号:1
7、个人总结:
今天上午课堂上写程序的时候,最后出现了乱码问题,之后修改字符集就解决了这个问题。这些错误可以不断的积累下来,从而更好的避开问题所在。发现自己写代码的速度过慢,在限时写代码的时候写不快,这是很伤的一点,还是要不断的练习,保证自己的书写规范以及编程速度。