• 课堂练习-增加信息


    1.题目

    按照图片要求设计添加新课程界面。(0.5分)

    在后台数据库中建立相应的表结构存储课程信息。(0.5分)

    实现新课程添加的功能。 要求判断任课教师为王建民、刘立嘉、刘丹、王辉、杨子光五位教师的其中一位。(0.5分)

    要求上课地点开头为“一教、二教、三教、基教”中的一种。(0.5分)

    实现数据存储功能。(3分)

    2.程序设计思想


     首先要建立相关类User,定义相关的设置和返回函数,然后再定义IUserDao类,负责定义要实现方法名,在定义UserDaoImpl实现这些函数,再定义UsrException类负责抛出异常,定义DBUtil类负责加载驱动、创建链接对象、创建语句传输对象、接收结果集对象、遍历关闭资源,然后再相应的定义add.jsp负责从客户端接受的参数判断是否为要求输入的具体名称,addInput.jsp负责界面样式。

    3.程序源代码

    IUserDao.java

    package com.jaovo.msg.dao;
    import java.util.List;
    import com.jaovo.msg.model.User;
    public interface IUserDao
    {
      public void add(User user);
      public void delete(int id);
      public void update(User user);
      public User load(int id);
      public User load(String name);
      public List<User> load();
    }

    UserDaoImpl.java

    package com.jaovo.msg.dao;

    import java.util.List;
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import com.jaovo.msg.Util.DBUtil;
    import com.jaovo.msg.Util.UserException;
    import com.jaovo.msg.model.User;

    public class UserDaoImpl implements IUserDao {

      @Override
      public void add(User user) {
      Connection connection=DBUtil.getConnection();                                          //获得链接对象
      String sql="select count(*) from t_user where kecheng=?";        //准备sql语句
      PreparedStatement preparedStatement=null;
      ResultSet resultSet=null;                  //创建语句传输对象
      try {
      preparedStatement=connection.prepareStatement(sql);
      preparedStatement.setString(1, user.getKecheng());      //接收结果集
      resultSet=preparedStatement.executeQuery();        //遍历结果集
      while(resultSet.next())
      {
        if(resultSet.getInt(1)>0)
        {
          throw new UserException("用户已存在");
        }
      }
      sql="insert into t_user(kecheng,jiaoshi,didian) value (?,?,?)";
      preparedStatement=connection.prepareStatement(sql);
      preparedStatement.setString(1, user.getKecheng());
      preparedStatement.setString(2, user.getJiaoshi());
      preparedStatement.setString(3, user.getDidian());
      preparedStatement.executeUpdate();
      } catch (SQLException e) {
      // TODO 自动生成的 catch 块
      e.printStackTrace();
      }finally
      {
      DBUtil.close(resultSet);
      DBUtil.close(preparedStatement);
      DBUtil.close(connection);
      }

     }

      @Override
      public void delete(int id) {
      // TODO 自动生成的方法存根

      }

      @Override                                                      //未实现的方法
      public void update(User user) {
      // TODO 自动生成的方法存根

      }

      @Override
      public User load(int id) {
      // TODO 自动生成的方法存根
      return null;
      }

      @Override
      public User load(String name) {
      // TODO 自动生成的方法存根
      return null;
      }

      @Override
      public List<User> load() {
      // TODO 自动生成的方法存根
      return null;
      }

    }

    User.java

    package com.jaovo.msg.model;

    public class User {
      private int id;
      private String kecheng;
      private String jiaoshi;
      private String didian;
      public int getId() {
      return id;
      }
      public void setId(int id) {
      this.id = id;
      }
      public String getKecheng() {                                         //设置赋值和返回函数
      return kecheng;
      }
      public void setKecheng(String kecheng) {
      this.kecheng = kecheng;
      }
      public String getJiaoshi() {
      return jiaoshi;
      }
      public void setJiaoshi(String jiaoshi) {
      this.jiaoshi = jiaoshi;
      }
      public String getDidian() {
      return didian;
      }
      public void setDidian(String didian) {
      this.didian = didian;
      }

    }

    DBUtil.java

    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.mysql.jdbc.Driver").newInstance();

      }catch(InstantiationException|IllegalAccessException|ClassNotFoundException e) {
      e.printStackTrace();
      }
      String user="root";
      String password="root";
      String url="jdbc:mysql://localhost:3306/jaovo_msg";
      Connection connection=null;
      try {
        connection=DriverManager.getConnection(url,user,password);
      } catch (SQLException e) {
      // TODO 自动生成的 catch 块
      e.printStackTrace();
      }
      return connection;
      }
      public static void close(Connection connection)
      {
      try {
        if(connection!=null)
        {
          connection.close();
        }
      } catch (SQLException e) {
      // TODO 自动生成的 catch 块
      e.printStackTrace();
      }
      }
      public static void close(PreparedStatement preparedStatement)
      {
      try {
        if(preparedStatement!=null)
        {
          preparedStatement.close();
        }
      }
      catch (SQLException e)
      {
      // TODO 自动生成的 catch 块
      e.printStackTrace();
      }
      }
      public static void close(ResultSet resultSet)
      {
      try {
        if(resultSet!=null)
        {
          resultSet.close();
        }
       }
      catch (SQLException e)
      {
      // TODO 自动生成的 catch 块
      e.printStackTrace();
      }
      }

    }

     UserException.java

    package com.jaovo.msg.Util;

    public class UserException extends RuntimeException{

      public UserException() {
      super();
      // TODO 自动生成的构造函数存根
      }

      public UserException(String arg0, Throwable arg1, boolean arg2, boolean arg3) {
      super(arg0, arg1, arg2, arg3);
      // TODO 自动生成的构造函数存根
      }

      public UserException(String arg0, Throwable arg1) {                                            //抛出异常
      super(arg0, arg1);
      // TODO 自动生成的构造函数存根
      }

      public UserException(String arg0) {
      super(arg0);
      // TODO 自动生成的构造函数存根
      }

      public UserException(Throwable arg0) {
      super(arg0);
      // TODO 自动生成的构造函数存根
      }


    }

    add.jsp

    <%@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 kecheng = request.getParameter("kecheng");
      String jiaoshi = request.getParameter("jiaoshi");
      String didian = request.getParameter("didian");
      if(kecheng == null || "".equals(kecheng.trim())){
      request.setAttribute("error", "输入信息不能为空");


    %>
    <jsp:forward page="addInput.jsp"></jsp:forward>
    <%
    }
      if((!(jiaoshi.equals("王建民")||jiaoshi.equals("刘力嘉")||jiaoshi.equals("刘丹")||jiaoshi.equals("王辉")||jiaoshi.equals("杨子光")))||(!(didian.equals("一教")||didian.equals("二教")||didian.equals("三教")||didian.equals("基教"))))
      {
        request.setAttribute("error", "信息输入有误");                   //判断是否为规定要求的名称


    %>
    <jsp:forward page="addInput.jsp"></jsp:forward>
    <%
    }
      User user = new User();
      user.setKecheng(kecheng);
      user.setJiaoshi(jiaoshi);
      user.setDidian(didian);

      UserDaoImpl userDao = new UserDaoImpl();
      try{
      userDao.add(user);
    %>


      用户保存成功!!<br>
      <a href="addInput.jsp">继续添加</a><br>

    <%
      }catch(UserException e){
    %>
      <h2 style="color:red ; font-size:50px">发生错误 : <%=e.getMessage() %></h2>
    <%
      }
    %>
    </html>

    addInput.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>

    <%=request.getAttribute("error") %>

    <form action="add.jsp" method="get">
      <table align="center" border="1" width="500">
      <tr>
        <td>课程信息 : </td>
        <td>
        <input type="text" name="kecheng" />
        </td>
      </tr>
      <tr>
        <td>任课教师:</td>
        <td>
        <input type="text" name="jiaoshi" />
        </td>
      </tr>
      <tr>
        <td>任课地点:</td>
        <td>
        <input type="text" name="didian" />
        </td>
      </tr>
      <tr align="center">
        <td colspan="2">
        <input type="submit" value="保存" />
        </td>
      </tr>
    </table>
    </form>
    </body>
    </html>

    4.运行结果截图

    5.PSP记录

  • 相关阅读:
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
  • 原文地址:https://www.cnblogs.com/z12568/p/7910668.html
Copyright © 2020-2023  润新知