一、 程序设计思想
首先写一个Java文件,存放连接数据库的代码;其次在add.jsp中绘制一个保存的界面;在add.input中对在客户端输入的数据进行接收判断;最后在写一个可对数据库进行添加信息的函数,在add.jsp中进行调用,将数据保存到数据库中。
二、 源程序代码
User.java
package com.jaovo.msg.model; public class User { private String lesson; private String teacher; private String place; public String getLesson() { return lesson; } public void setLesson(String lesson) { this.lesson = lesson; } public String getTeacher() { return teacher; } public void setTeacher(String teacher) { this.teacher = teacher; } public String getPlace() { return place; } public void setPlace(String place) { this.place = place; } }
package com.jaovo.msg.dao; import java.util.List; import com.jaovo.msg.model.User; public interface IUserDao { public void add(User user); }
package com.jaovo.msg.dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import com.jaovo.msg.Util.DBUtil; import com.jaovo.msg.Util.UserException; import com.jaovo.msg.model.User; import sun.net.www.content.text.plain; public class UserDaoImpl implements IUserDao { @Override public void add(User user) { //获得链接对象 Connection connection = DBUtil.getConnection(); //准备sql语句 String sql = "select count(*) from t_user where lesson = ?"; //创建语句传输对象 PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { preparedStatement = connection.prepareStatement(sql); preparedStatement.setString(1, user.getLesson()); //接收结果集 resultSet = preparedStatement.executeQuery(); //遍历结果集 while(resultSet.next()) { if (resultSet.getInt(1) > 0) { throw new UserException("用户已存在") ; } } sql = "insert into t_user(lesson,teacher,place) value (?,?,?)"; preparedStatement = connection.prepareStatement(sql); preparedStatement.setString(1, user.getLesson()); preparedStatement.setString(2, user.getTeacher()); preparedStatement.setString(3, user.getPlace()); preparedStatement.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { //关闭资源 DBUtil.close(resultSet); DBUtil.close(preparedStatement); DBUtil.close(connection); } } }
<%@page import="com.jaovo.msg.Util.ValidateUtil"%> <%@page import="java.util.Map"%> <%@ 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="lesson" /> <%=ValidateUtil.showError(request, "lesson") %> </td> </tr> <tr> <td>任课教师:</td> <td> <select name="teacher"> <option value="王建民">王建民</option> <option value="刘立嘉">刘立嘉</option> <option value="杨子光">杨子光</option> <option value="刘丹">刘丹</option> <option value="王辉">王辉</option> <%=ValidateUtil.showError(request, "teacher") %> </td> </tr> <tr> <td>上课地点:</td> <td> <select name="place"> <option value="基教">基教</option> <option value="一教">一教</option> <option value="二教">二教</option> <option value="三教">三教</option> <%=ValidateUtil.showError(request, "place") %> </td> </tr> <tr align="center"> <td colspan="2"> <input type="submit" value="保存" /> </td> </tr> </table> </form> <script language="javascript"> </script> </body> </html>
<%@page import="com.jaovo.msg.Util.ValidateUtil"%> <%@page import="com.jaovo.msg.Util.UserException"%> <%@page import="com.jaovo.msg.dao.UserDaoImpl"%> <%@page import="com.jaovo.msg.model.User"%> <%@ 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 lesson = request.getParameter("lesson"); String teacher = request.getParameter("teacher"); String place = request.getParameter("place"); boolean validate = ValidateUtil.validateNull(request, new String[]{"lesson","teacher","place"}); if(!validate){ %> <jsp:forward page="addInput.jsp"></jsp:forward> <% } User user = new User(); user.setLesson(lesson); user.setTeacher(teacher); user.setPlace(place); UserDaoImpl userDao = new UserDaoImpl(); try{ userDao.add(user); //重定向 %> <% }catch(UserException e){ %> <h2 style="color:red ; font-size:50px">发生错误 : <%=e.getMessage() %></h2> <% } %>
三、 运行结果截图
一、 记录开发过程
项目计划日志
名称:课程信息保存 日期:2017.11.28
日期 |
上课 |
编写程序 |
上课 |
编写程序 |
|
|
周二 |
50 |
50 |
110 |
60 |
|
|
时间记录日志
学生 王晓丹 日期 2017.11.28
教师 王建民 课程 软件工程概论
日期 |
开始时间 |
结束时间 |
中断时间 |
净时间 |
活动 |
备注 |
C |
U |
2017.11.28 |
9:05 |
9:50 |
|
50min |
课堂测试 |
|
|
|
|
10:10 |
12:00 |
|
110min |
上课 |
|
|
|
|
14:00 |
15:00 |
|
60min |
课堂测试未完成部分 |
|
|
|
缺陷记录日志
学生 王晓丹
日期 2017. 11.28
教员 王建民
程序号 02 课程信息保存
日期 |
编号 |
类型 |
引入阶段 |
排除阶段 |
修复时间 |
修复缺陷 |
2017.11.28 |
1 |
数据库连接 |
编码 |
编译 |
60min |
|
描述:代码中有一处名称与数据库中不一样 |
||||||
|
2 |
输入限制 |
设计 |
编码 |
20 |
|
描述:可以将任课教师和上课地点设置为下拉菜单模式 |