oracle数据库郭斌_软件工程概论——课程导入界面以及数据导入数据库

将课堂练习设计思想,源程序代码、运行结果截图的开发过程,并按照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、个人总结:

今天上午课堂上写程序的时候,最后出现了乱码问题,之后修改字符集就解决了这个问题。这些错误可以不断的积累下来,从而更好的避开问题所在。发现自己写代码的速度过慢,在限时写代码的时候写不快,这是很伤的一点,还是要不断的练习,保证自己的书写规范以及编程速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值