课程信息管理系统

1.环境的配置:eclipse+tomcat+MySQL+Navicat Premium

2.在Navicat Premium中新建db_book数据库,其中新建tb_books数据表。包含四个字段:id、name、teacher、workplace,将id设为自动递增,否则后面递增会出错。

3.新建web项目,点击两次next,勾选自动生成web.xml。

生成的项目结构如下:

将连接mysql的驱动jar包(mysql-connector-java-8.0.13-bin.jar)复制到WEB-INF下的lib目录下,直接拖拽即可。

4.新建3个包,在每个包下建对应的Java类。

Book.java

package example.bean.book;
public class Book { 

  private int id; 

  private String name; 

  private String teacher; 

  private String workplace;
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getTeacher() {
    return teacher;
}
public void setTeacher(String teacher) {
    this.teacher = teacher;
}
public String getWorkplace() {
    return workplace;
}
public void setWorkplace(String workplace) {
    this.workplace = workplace;
}

}

BookJdbcDao.java

package example.dao.book; 

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException; 

import example.bean.book.Book; 

public class BookJdbcDao { 

  private PreparedStatement ptmt = null;
  private ResultSet rs = null; 

  public BookJdbcDao() {
  } 

  public void findAll(Connection conn) throws SQLException
  {
    //to do
  } 

  public void delete(Connection conn, int id) throws SQLException
  {
    String sql = "delete from tb_books where id=?";
    try{
      ptmt = conn.prepareStatement(sql);
      // 对SQL语句中的第一个占位符赋值
      ptmt.setInt(1, id);
      // 执行更新操作
      ptmt.executeUpdate(); 

    }finally{
      if (null!=ptmt) {
        ptmt.close();
      } 

      if (null!=conn) {
        conn.close();
      } 

    } 

  } 

  public void update(Connection conn, int id ) throws SQLException
  {
    //to do 

  }
}

ConnectionFactory.java

package example.dao.book; 

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException; 

public class ConnectionFactory { 

  private String driverClassName = "com.mysql.cj.jdbc.Driver";
  private String url = "jdbc:mysql://localhost:3306/db_book?&useSSL=false&serverTimezone=UTC";
  private String userName = "root";
  private String password = "password"; 

  private static ConnectionFactory connectionFactory=null; 

  private ConnectionFactory() { 

    try {
      Class.forName(driverClassName);
    } catch (ClassNotFoundException e) {
      e.printStackTrace();
    }
  } 

  public Connection getConnection() throws SQLException
  {
    return DriverManager.getConnection(url, userName, password); 

  } 

  public static ConnectionFactory getInstance()
  {
    if (null==connectionFactory) {
      connectionFactory=new ConnectionFactory();
    }
    return connectionFactory; 

  }
}

DeleteServlet.java

package example.servlet.book;
import java.io.IOException;
import java.sql.Connection;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import example.dao.book.BookJdbcDao;
import example.dao.book.ConnectionFactory; 

/**
 * Servlet implementation class DeleteServlet
 */
public class DeleteServlet extends HttpServlet {
  private static final long serialVersionUID = 1L; 

  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
   *   response)
   */
  protected void doGet(HttpServletRequest request,
      HttpServletResponse response) throws ServletException, IOException {
    int id = Integer.valueOf(request.getParameter("id"));
    try {
//
      BookJdbcDao bookDao=new BookJdbcDao();
      Connection conn=ConnectionFactory.getInstance().getConnection();
      bookDao.delete(conn,id); 

    } catch (Exception e) {
      e.printStackTrace();
    }
    // 重定向到FindServlet
    response.sendRedirect("FindServlet");
  } 

  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
   *   response)
   */
  protected void doPost(HttpServletRequest request,
      HttpServletResponse response) throws ServletException, IOException {
    doGet(request, response);
  } 

}

FindServlet.java

package example.servlet.book;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List; 

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; 

import example.bean.book.Book;//导入包下的Book类

/**
 * Servlet implementation class FindServlet
 */
public class FindServlet extends HttpServlet {
  private static final long serialVersionUID = 1L; 

  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
   *   response)
   */
  protected void doGet(HttpServletRequest request,
      HttpServletResponse response) throws ServletException, IOException {
    try {
      // 加载数据库驱动,注册到驱动管理器
      Class.forName("com.mysql.cj.jdbc.Driver");
      // 数据库连接字符串
      String url = "jdbc:mysql://localhost:3306/db_book?&useSSL=false&serverTimezone=UTC";
      // 数据库用户名
      String username = "root";
      // 数据库密码
      String password = "password";
      // 创建Connection连接
      Connection conn = DriverManager.getConnection(url, username,
          password);
      // 添加图书信息的SQL语句
      String sql = "select * from tb_books";
      // 获取Statement
      Statement statement = conn.createStatement(); 

      ResultSet resultSet = statement.executeQuery(sql); 

      List<Book> list = new ArrayList<Book>();
      while (resultSet.next()) { 

        Book book = new Book();
        book.setId(resultSet.getInt("id"));
        book.setName(resultSet.getString("name"));
        book.setTeacher(resultSet.getString("teacher"));
        book.setWorkplace(resultSet.getString("workplace"));
        list.add(book);
      }
      request.setAttribute("list", list);
      resultSet.close();
      statement.close();
      conn.close(); 

    } catch (Exception e) {
      e.printStackTrace();
    } 

    request.getRequestDispatcher("book_list.jsp")
        .forward(request, response); 

  } 

  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
   *   response)
   */
  protected void doPost(HttpServletRequest request,
      HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  } 

}

UpdateServlet.java

package example.servlet.book; 

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement; 

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; 

/**
 * Servlet implementation class UpdateServlet
 */
public class UpdateServlet extends HttpServlet {
  private static final long serialVersionUID = 1L; 

  /**
   * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
   *   response)
   */
  protected void doGet(HttpServletRequest request,
      HttpServletResponse response) throws ServletException, IOException {
      request.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");
    int id = Integer.valueOf(request.getParameter("id"));
    String name = request.getParameter("name");
    String teacher = request.getParameter("teacher");
    String workplace = request.getParameter("workplace");
    try {
      // 加载数据库驱动,注册到驱动管理器
      Class.forName("com.mysql.cj.jdbc.Driver");
      // 数据库连接字符串
      String url = "jdbc:mysql://localhost:3306/db_book?&useSSL=false&serverTimezone=UTC";
      // 数据库用户名
      String username = "root";
      // 数据库密码
      String password = "password";
      // 创建Connection连接
      Connection conn = DriverManager.getConnection(url, username,
          password);
      // 更新SQL语句
      String sql = "UPDATE tb_books SET name=?,teacher=?,workplace=? WHERE id=?";
      // 获取PreparedStatement
      PreparedStatement ps = conn.prepareStatement(sql);
      // 对SQL语句中的第一个参数赋值
      ps.setString(1, name);
      ps.setString(2, teacher);
      ps.setString(3, workplace);
      ps.setInt(4, id);
      // 对SQL语句中的第二个参数赋值 

      // 执行更新操作
      ps.executeUpdate();
      // 关闭PreparedStatement
      ps.close();
      // 关闭Connection
      conn.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
    // 重定向到FindServlet
    response.sendRedirect("FindServlet"); 

  } 

  /**
   * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
   *   response)
   */
  protected void doPost(HttpServletRequest request,
      HttpServletResponse response) throws ServletException, IOException {
    // TODO Auto-generated method stub
    doGet(request, response);
  } 

}

5.右击Webcontent新建5个jsp页面。

addbook.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"> 

<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.PreparedStatement"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>添加结果</title>
</head>
<body>
  <%
    request.setCharacterEncoding("utf-8");
  %>
  <jsp:useBean id="book" class="example.bean.book.Book"></jsp:useBean>
  <jsp:setProperty property="*" name="book" />
  <%
    try {
      // 加载数据库驱动,注册到驱动管理器
      Class.forName("com.mysql.cj.jdbc.Driver");
      // 数据库连接字符串
      String url = "jdbc:mysql://localhost:3306/db_book?&useSSL=false&serverTimezone=UTC";
      // 数据库用户名
      String username = "root";
      // 数据库密码
      String password = "password";
      // 创建Connection连接
      Connection conn = DriverManager.getConnection(url, username,
          password);
      // 添加图书信息的SQL语句
      String sql = "insert into tb_books(name,teacher,workplace) values(?,?,?)";
      // 获取PreparedStatement
      PreparedStatement ps = conn.prepareStatement(sql);
      // 对SQL语句中的第1个参数赋值
      ps.setString(1, book.getName());
      // 对SQL语句中的第2个参数赋值
      ps.setString(2, book.getTeacher());
      ps.setString(3, book.getWorkplace());
      // 对SQL语句中的第3个参数赋值
      // 对SQL语句中的第4个参数赋值
      // 执行更新操作,返回所影响的行数
      int row = ps.executeUpdate();
      // 判断是否更新成功
      if (row > 0) {
        // 更新成输出信息
        out.print("成功添加了 " + row + "条数据!");
      }
      // 关闭PreparedStatement,释放资源
      ps.close();
      // 关闭Connection,释放资源
      conn.close();
    } catch (Exception e) {
      out.print("课程信息添加失败!");
      e.printStackTrace();
    }
  %>
  <br>
  <a href="main.jsp">返回</a>
</body>
</html>

book_list.jsp

<!--<%@page import="sun.awt.SunHints.Value"%>-->
<%@ 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">

<%@page import="java.util.List"%>
<%@page import="example.bean.book.Book"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>所有课程信息</title>
<style type="text/css">
td {
    font-size: 12px;
}

h2 {
    margin: 0px
}
</style>
</head>
<body>
    <table align="center" width="450" border="1" height="180"
        bordercolor="white" bgcolor="black" cellpadding="1" cellspacing="1">
        <tr bgcolor="white">
            <td align="center" colspan="7">
                <h2>所有课程信息</h2>
            </td>
        </tr>
        <tr align="center" bgcolor="#e1ffc1">
            <td><b>ID</b></td>
            <td><b>课程名称</b></td>
            <td><b>老师</b></td>
            <td><b>上课地点</b></td>
            <td><b>删除</b></td>
        </tr>
        <%
            // 获取图书信息集合
            List<Book> list = (List<Book>) request.getAttribute("list");
            // 判断集合是否有效
            if (list == null || list.size() < 1) {
                out.print("没有数据!");
            } else {
                // 遍历图书集合中的数据
                for (Book book : list) {
        %>
        <tr align="center" bgcolor="white">
            <td><%=book.getId()%></td>
            <td><%=book.getName()%></td>
            <td><%=book.getTeacher()%></td>
            <td><%=book.getWorkplace()%></td>
            <td><a href="DeleteServlet?id=<%=book.getId()%>">删除</a></td>

        </tr>
        <%
            }
            }
        %>
    </table>
    <h2 align="center">
        <a href="main.jsp">返回主菜单</a>
    </h2>

</body>
</html>

Update.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>课程信息修改</title>
</head>
<script type="text/javascript">
function check(form) {
        with (form) {
            if (name.value == "") {
                alert("课程名称不能为空");
                return false;
              }
              if (teacher.value == "") {
                alert("老师名字不能为空");
                return false;
              }
              if (workplace.value == "") {
                alert("上课地点不能为空");
                return false;
              }
        }
    }
</script>
<body>
<td>
                <form style="align: center; background-color: gray"
                    action="UpdateServlet" method="post" onsubmit=" return check(this);">
                    <input type="text" name="id" size=3>
                    <input type="text" name="name" size="3">
                    <input type="text" name="teacher" size="3">
                    <input type="text" name="workplace" size="3">
                     <input type="submit" value="修改">
                </form>
            </td>
            <h2 align="center">
        <a href="main.jsp">返回主菜单</a>
    </h2>
</body>
</html>

index.jsp

<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.Connection"%>
<%@ 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>添加课程信息</title> 

<script type="text/javascript">
  function check(form) {
    with (form) {
      if (name.value == "") {
        alert("课程名称不能为空");
        return false;
      } 

      if (teacher.value == "") {
        alert("老师名字不能为空");
        return false;
      } 

      if (workplace.value == "") {
        alert("上课地点不能为空");
        return false;
      } 

    }
  }
</script> 

</head> 

<body> 

<form action="addbook.jsp" method="post" onsubmit="check(this)">
  <table align="center" width="450">
    <tr>
      <td align="center" colspan="2">
        <h2>添加课程信息</h2>
        <hr>
      </td>
    </tr> 

    <tr>
      <td align="right">课程名称:</td>
      <td><input type="text" name="name"></td>
    </tr> 

    <tr>
      <td align="right">老师:</td>
      <td><input type="text" name="teacher"></td>
    </tr> 

    <tr>
      <td align="right">上课地点:</td>
      <td><input type="text" name="workplace" /></td>
    </tr>
    <tr>
      <td align="center" colspan="2"><input type="submit" value="添 加">
      </td>
    </tr>
  </table>
</form> 

<h2 align="center">
        <a href="main.jsp">返回主菜单</a>
    </h2>

</body>
</html>

main.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>课程信息管理系统</title>
</head>
<body>
<center><h1>主菜单</h1><center>
<table><center>
<td><A href="index.jsp"><font size=2>课程信息录入</font></A></td>
<td><A href="Update.jsp"><font size=2>课程信息修改</font></A></td>
<h2 align="center">
  <a href="FindServlet">查询课程信息</a>
</h2>
<h2 align="center">
  <a href="FindServlet">删除课程信息</a>
</h2>
</table></center>
</body>
</html>

接下来配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
 <display-name>JdbcConnection</display-name>
 <welcome-file-list>
  <welcome-file>index.html</welcome-file>
  <welcome-file>index.htm</welcome-file>
  <welcome-file>index.jsp</welcome-file>
  <welcome-file>default.html</welcome-file>
  <welcome-file>default.htm</welcome-file>
  <welcome-file>default.jsp</welcome-file>
 </welcome-file-list>
 <servlet>
  <description></description>
  <display-name>FindServlet</display-name>
  <servlet-name>FindServlet</servlet-name>
  <servlet-class>example.servlet.book.FindServlet</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>FindServlet</servlet-name>
  <url-pattern>/FindServlet</url-pattern>
 </servlet-mapping>
 <servlet>
  <description></description>
  <display-name>UpdateServlet</display-name>
  <servlet-name>UpdateServlet</servlet-name>
  <servlet-class>example.servlet.book.UpdateServlet</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>UpdateServlet</servlet-name>
  <url-pattern>/UpdateServlet</url-pattern>
 </servlet-mapping>
 <servlet>
  <description></description>
  <display-name>DeleteServlet</display-name>
  <servlet-name>DeleteServlet</servlet-name>
  <servlet-class>example.servlet.book.DeleteServlet</servlet-class>
 </servlet>
 <servlet-mapping>
  <servlet-name>DeleteServlet</servlet-name>
  <url-pattern>/DeleteServlet</url-pattern>
 </servlet-mapping>
</web-app>

代码复制完成之后,需要将连接数据库的用户名密码修改为连接自己的数据库的用户名和密码。

原文地址:https://www.cnblogs.com/zwang/p/10092189.html

时间: 2024-11-05 18:50:59

课程信息管理系统的相关文章

从零开始,编写简单的课程信息管理系统(使用jsp+servlet+javabean架构)

一.相关的软件下载和环境配置 1.下载并配置JDK. 2.下载eclipse. 3.下载并配置apache-tomcat(服务器). 4.下载MySQL(数据库). 5.下载Navicat for MySQL(数据库可视化工具),方便对数据库的操作. 6.下载jdbc用来实现eclipse中的项目与数据库实现连接. ---以上可在网上查询教程 二.实现简单的课程信息管理系统 1. 打开eclipse,点击File->New->other->Dynamic Web Project (若你的

课程信息管理系统(javabean + Servlet + jsp)

此项目做的事一个课程管理系统,需要通过web做一个可以实现课程的增删改查的功能. 需要用到数据库,Servlet和jsp等(第一次使用Servlet和数据库连接,所以代码都比较低级,页面也比较粗糙,还没有实现Servlet处理后数据的回传,还未实现模糊查询) 程序所建的项目如下: 1.首先建立数据库链接 course/src/com.jdbc.util/BaseConnection.java 代码如下: 1 package com.jdbc.util; 2 3 4 import java.sql

石家庄铁道大学课程信息管理系统(javaWeb+servlet+Mysql)

实现网页版的课程管理系统,具有增删改查的功能. 1.首先连接数据库,具体数据库的使用及如何连接eclipse,参考     https://blog.csdn.net/lrici/article/details/54380872. 本项目连接数据库的代码如下: package com.hjf.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java

关于石家庄铁道大学课程信息管理系统详细制作过程

1.环境的配置:eclipse+tomcat+MySQL+Navicat Premium 2.在Navicat Premium中新建db_book数据库,其中新建tb_books数据表.包含四个字段:id.name.teacher.workplace,将id设为自动递增,否则后面递增会出错. 3.新建web项目,点击两次next,勾选自动生成web.xml. 生成的项目结构如下: 将连接mysql的驱动jar包(mysql-connector-java-8.0.13-bin.jar)复制到WEB

C语言课程设计之学生信息管理系统

#include"stdio.h"        //标准的输入输出函数文件头部说明 #include"math.h"              // 数学函数头部说明 #include"string.h" #include"stdlib.h"    //通过该函数头部里的函数,改变控制台的背景和颜色 #include"windows.h"    //头文件声明,下文用到了改变控制台的宽度和高度 #defi

数据结构课程设计论文--学生信息管理系统

数据结构课程设计论文--学生信息管理系统 1.学生成绩分析问题 (1)问题描述.录入并保存一个班级学生多门课程的成绩,并对成绩进行分析. (2)基本要求.a)通过键盘输入各学生的多门课程的成绩,建立相应的文件input.dat.b)对文件input.dat中的数据进行处理,要求具有如下功能:按各门课程成绩排序,并生成相应的文件输出:计算每个人的平均成绩,按平均成绩排序,并生成文件:求出各门课程的平均成绩.最高分.最低分.不及格人数.60~69分人数.70~79分人数.80~89分人数.90分以上

课程设计-图书信息管理系统

介绍: 课程设计-银行储蓄系统-->在这里 图书信息管理系统包括:登录号.书名.作者名.分类号.出版单位.出版时间.价格等.试设计一图书信息管理系统,使之能提供以下功能: (1)系统以菜单方式工作 (2)图书信息录入功能(学生信息用文件保存)---输入 (3)图书信息浏览功能---输出 (4)查询.排序功能 按登录号查询 按书名查询 (5)图书信息的删除与修改 源代码: 下面是源代码: book.h: #ifndef BOOK_H_INCLUDED #define BOOK_H_INCLUDED

java课程设计(学生信息管理系统)

1.需求分析 功能要求: 1)需要管理的学生信息有:学号.姓名.性别.出生日期.政治面貌.家庭住址.电话.宿舍号. 2)实现查询.增.删.改等功能. 数据存储:数据库或文件. 2.本组课题及本人任务 本组的课题是学生信息管理系统,我负责的任务是完成学生信息管理系统的图形界面. 3.总体设计(概要设计) 本组完成的是学生信息管理系统,主要的功能有增,删,查,改,管理的学生信息有学号.姓名.性别.出生日期.政治面貌.家庭住址.电话.宿舍号.并且使用数据库来储存学生信息. 小组成员 翁华辉:负责完成学

学生信息管理系统修改

北京工业大学耿丹学院 c语言设计课程报告   课程设计名称:高级语言程序设计 专业班级:计算机科学与技术1 姓名:吴双 学号:150809201   2016年5月10日 一 对c语言指针链表的体会 ------------------------ 二 修改学生信息管理系统 ------------------------ 三 体会 ------------------------ 一 对c语言指针链表的体会 1.指针 简单来说,指针是一个存储计算机内存地址的变量. 用 int *ptr 这种形