一.项目需求
课程管理是各大院校的管理工作中尤为重视的一项工作,它一直以来是学校管
理的一项重要的衡量指标。石家庄铁道大学为了提高工作效率,实现信息化管理,
要求开发课程管理系统。——设计添加新课程界面。//在后台数据库中建立相应的表结构存储课程信息。//实现新课程添加的功能。 要求限定教师为系中的5位老师。//要求限制上课地点开头为“一教、二教、三教、基教”中的一种。//实现数据存储功能。
二.设计思想
需要建立一个课程的类,一个连接数据库的类,一个接口,一个异常框,一个前端界面和一个后端页面。
所以首先创建课程类。包含三个参数:a.课程名称 b.教师名称 c.上课地点。(自动构建get和set函数)
其次构建一个连接数据库的类,用来连接数据库
创建一个接口,其中有一个静态方法,传入一个课程类的对象。能够实现将该对象传入数据库//创建一个异常框,用来在课程出错时,弹出异常信息。//创建一个前段界面,显示界面信息
同时创建一个后端页面,接受来自前端的消息,并且对其进行判断。如果在限定条件内,则添加到数据库。否则,抛出异常,跳转页面
三.源程序代码
(1)java
1.创建课程类
package com.jaovo.msg.model; public class HaveClass { private String teachername; private String place; private String classname; public String getTeachername() { return teachername; } public void setTeachername(String teachername) { this.teachername = teachername; } public String getPlace() { return place; } public void setPlace(String place) { this.place = place; } public String getClassname() { return classname; } public void setClassname(String classname) { this.classname = classname; } }
2.构建一个连接数据库的类,用来连接数据库
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 { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } String user = "sa"; String password = "jisuan@10Q"; String url = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=OnClass"; Connection connection = null; try { connection = DriverManager.getConnection(url,user,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(); } } }
3.创建一个类,用来实现添加到数据库中
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.HaveClass; public class ClassDaoImpl { public void add(HaveClass claz) { //获得链接对象 Connection connection = DBUtil.getConnection(); //准备sql语句 String sql = "insert into t_class(teachername,classname,place) values(?,?,?)"; PreparedStatement preparedStatement = null; try { //创建语句传输对象 preparedStatement = connection.prepareStatement(sql); preparedStatement = connection.prepareStatement(sql); preparedStatement.setString(1, claz.getTeachername()); preparedStatement.setString(2, claz.getClassname()); preparedStatement.setString(3, claz.getPlace()); preparedStatement.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { //关闭资源 DBUtil.close(preparedStatement); DBUtil.close(connection); } } }
4.使用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="place" /> </td> </tr> <tr align="center"> <td colspan="2"> <input type="submit" value="提交" /> <input type="reset" value="重置" /> </td> </tr> </table> </form> </body> </html>
5.创建后端界面,完成对数值的校验
<%@page import="com.jaovo.msg.Util.ClassException"%> <%@page import="com.jaovo.msg.dao.ClassDaoImpl"%> <%@page import="com.jaovo.msg.model.HaveClass"%> <%@ 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 teachername = request.getParameter("teachername"); String classname = request.getParameter("classname"); String place = request.getParameter("place"); try{ if(!teachername.trim().equals("王建民")&&!teachername.trim().equals("刘立嘉")&&!teachername.trim().equals("刘丹")&&!teachername.trim().equals("王辉")&&!teachername.trim().equals("杨子光")) { throw new ClassException("不能输入规定之外的老师名称"); } else if(!place.trim().startsWith("基教")&&!place.trim().startsWith("一教")&&!place.trim().startsWith("二教")&&!place.trim().startsWith("三教")) { throw new ClassException("不能输入规定之外的地点名称!"); } else { HaveClass haveclass = new HaveClass(); haveclass.setTeachername(teachername); haveclass.setClassname(classname); haveclass.setPlace(place); ClassDaoImpl classDao = new ClassDaoImpl(); classDao.add(haveclass); } }catch(ClassException e){ %> <h2 style="color:red ; font-size:50px">发生错误 : <%=e.getMessage() %></h2> <% } %> </html>
四.运行结果截图
注:代码基本源自网页,以及各位学长的帮助,讲真的我自己做不出来,我现在的状态只能连接成功数据库,对于网页前端和后端,JSP的用处我会在下一个博客里写一下我的感觉。一定会细心的。