1.设计思想
先写类DBUtil用来连接数据库。在UserDaoImpl2类中写在数据库中添加课程表信息的方法。然后定义类Calss2来写保存超级课表数据:课程名称,任课教师,上课地点的属性及其get和set方法。新建Calss.jsp文件来写保存功能的界面,doClass.jsp文件来接受Class.jsp文件传过来的参数,如果参数不正确,则给出提示并且依旧在保存功能页面,如果正确则跳转页面提示保存成功。新建ValidateUtil类,在类中的方法中判断三个参数是否正确,若不正确并返回错误信息。在doCalss类中调用此方法。
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 { //1 加载驱动 Class.forName("com.mysql.jdbc.Driver").newInstance(); } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } String user = "root"; String password = "root"; String url = "jdbc:mysql://localhost:3307/jaovo_msg";//定义工具类 Connection connection = null; try { //2 创建链接对象connection 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(); } } }
package com.jaovo.msg.model; public class Class2 { private String classname; private String teacher; private String address; public String getClassname() { return classname; } public void setClassname(String classname) { this.classname = classname; } public String getTeacher() { return teacher; } public void setTeacher(String teacher) { this.teacher = teacher; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
package com.jaovo.msg.dao; import com.jaovo.msg.model.*; public interface IUserDao2 { public void add(Class2 class2); }
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.Class2; public class UserDaoImpl2 implements IUserDao2{ @Override public void add(Class2 class2) { //获得链接对象 Connection connection = DBUtil.getConnection(); //准备sql语句 PreparedStatement preparedStatement = null; ResultSet resultSet = null; try { String sql = "insert into t_class(classname,teacher,address) value (?,?,?)"; preparedStatement = connection.prepareStatement(sql); preparedStatement.setString(1, class2.getClassname()); preparedStatement.setString(2,class2.getTeacher()); preparedStatement.setString(3,class2.getAddress()); preparedStatement.executeUpdate(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { //关闭资源 DBUtil.close(resultSet); DBUtil.close(preparedStatement); DBUtil.close(connection); } } }
package com.jaovo.msg.Util; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; public class ValidateUtil { public static boolean validateNull(HttpServletRequest request,String[] fileds) { boolean validate = true; //map对象用来装载不同的错误信息 Map<String,String> errorMsg = new HashMap(); for(int i=0;i<3;i++) { String value = request.getParameter(fileds[i]); if(i==1) { if(value.equals("王建民")||value.equals("刘立嘉")||value.equals("刘丹")||value.equals("王辉")||value.equals("杨子光")) { validate=true; } else { validate = false; errorMsg.put(fileds[i], "教师不正确"); } } if(i==2) { boolean a[]=new boolean[4]; String[] sub={"一教","二教","三教","基教"}; for(int j=0;j<4;j++) { a[i]=value.startsWith(sub[j]); } boolean is=false; for(int k=0;k<4;k++) { if(a[i]==true) is=true; } if(is==true) { validate=true; } else { validate = false; errorMsg.put(fileds[i], "教室不正确"); } if (!validate) { request.setAttribute("errormsg", errorMsg); } } } return validate; } public static String showError(HttpServletRequest request , String filed) { Map<String, String> errorMsg = (Map<String,String>)request.getAttribute("errormsg"); if (errorMsg == null) { return ""; } String msg = errorMsg.get(filed); if (msg == null) { return ""; } return msg; } }
<%@page import="java.util.Map"%> <%@ page import="com.jaovo.msg.Util.ValidateUtil" %> <%@ 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> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <% Map<String,String> errorMsg=(Map<String,String>)request.getAttribute("errormsg"); %> <form action="doClass.jsp" method="post"> <table align="center" width="50%" border="1"> <tr><td>课程名称</td> <td><input type="text" name="classname"/> <%=ValidateUtil.showError(request, "classname")%></td></tr> <tr><td> 任课教师</td> <td><input type="text" name="teacher"/> <%=ValidateUtil.showError(request, "teacher")%></td></tr> <tr><td> 上课地点</td> <td><input type="text" name="address"/> <%=ValidateUtil.showError(request, "address")%> </td></tr> <tr><td colspan="2" align="center"> <input type="submit" value="保存"/> </td></tr> </table> </form> </body> </html>
<%@page import="com.jaovo.msg.dao.UserDaoImpl2"%> <%@page import="com.jaovo.msg.model.Class2"%> <%@page import="java.util.Map"%> <%@ page import="com.jaovo.msg.Util.ValidateUtil" %> <%@ 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> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <% //接收客户端传递过来的参数 String classname= request.getParameter("classname"); String teacher= request.getParameter("teacher"); String address = request.getParameter("address"); boolean validate = ValidateUtil.validateNull(request, new String[]{"classname","teacher","address"}); if(!validate){ %> <jsp:forward page="Class.jsp"></jsp:forward> <% } Class2 class2 = new Class2(); class2.setClassname(classname); class2.setTeacher(teacher); class2.setAddress(address); UserDaoImpl2 userDao2 = new UserDaoImpl2(); userDao2.add(class2); out.println("添加成功!!"); %> </body> </html>