• 课程管理系统


    首先建立数据库的连接, 新建web项目,点击两次next,勾选自动生成web.xml,将连接mysql的驱动jar包(mysql-connector-java-8.0.13-bin.jar)复制到WEB-INF下的lib目录下。

    package com.hjf.dao;
    
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.ArrayList;
    import java.util.List;
    
    import com.hjf.entity.Course;
    import com.hjf.util.DBUtil;
    
    /**
     * 课程Dao
     * Dao层操作数据
     * @author Hu
     *
     */
    public class CourseDao {
    
    	/**
    	 * 添加
    	 * @param course
    	 * @return
    	 */
    	public boolean add(Course course) {
    		String sql = "insert into course(name, teacher, classroom) values('" + course.getName() + "','" + course.getTeacher() + "','" + course.getClassroom() + "')";
    		Connection conn = DBUtil.getConn();
    		Statement state = null;
    		boolean f = false;
    		int a = 0;
    		
    		try {
    			state = conn.createStatement();
    			state.executeUpdate(sql);
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			DBUtil.close(state, conn);
    		}
    		
    		if (a > 0) {
    			f = true;
    		}
    		return f;
    	}
    
    	/**
    	 * 删除
    	 * 
    	 * @param id
    	 * @return
    	 */
    	public boolean delete (int id) {
    		boolean f = false;
    		String sql = "delete from course where id='" + id + "'";
    		Connection conn = DBUtil.getConn();
    		Statement state = null;
    		int a = 0;
    		
    		try {
    			state = conn.createStatement();
    			a = state.executeUpdate(sql);
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally {
    			DBUtil.close(state, conn);
    		}
    		
    		if (a > 0) {
    			f = true;
    		}
    		return f;
    	}
    
    	/**
    	 * 修改
    	 * @param name
    	 * @param pass
    	 */
    	public boolean update(Course course) {
    		String sql = "update course set name='" + course.getName() + "', teacher='" + course.getTeacher() + "', classroom='" + course.getClassroom()
    			+ "' where id='" + course.getId() + "'";
    		Connection conn = DBUtil.getConn();
    		Statement state = null;
    		boolean f = false;
    		int a = 0;
    
    		try {
    			state = conn.createStatement();
    			a = state.executeUpdate(sql);
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally {
    			DBUtil.close(state, conn);
    		}
    		
    		if (a > 0) {
    			f = true;
    		}
    		return f;
    	}
    	
    	/**
    	 * 验证课程名称是否唯一
    	 * true --- 不唯一
    	 * @param name
    	 * @return
    	 */
    	public boolean name(String name) {
    		boolean flag = false;
    		String sql = "select name from course where name = '" + name + "'";
    		Connection conn = DBUtil.getConn();
    		Statement state = null;
    		ResultSet rs = null;
    		
    		try {
    			state = conn.createStatement();
    			rs = state.executeQuery(sql);
    			while (rs.next()) {
    				flag = true;
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally {
    			DBUtil.close(rs, state, conn);
    		}
    		return flag;
    	}
    	
    	/**
    	 * 通过ID得到类
    	 * @param id
    	 * @return
    	 */
    	public Course getCourseById(int id) {
    		String sql = "select * from course where id ='" + id + "'";
    		Connection conn = DBUtil.getConn();
    		Statement state = null;
    		ResultSet rs = null;
    		Course course = null;
    		
    		try {
    			state = conn.createStatement();
    			rs = state.executeQuery(sql);
    			while (rs.next()) {
    				String name = rs.getString("name");
    				String teacher = rs.getString("teacher");
    				String classroom = rs.getString("classroom");
    				course = new Course(id, name, teacher, classroom);
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			DBUtil.close(rs, state, conn);
    		}
    		
    		return course;
    	}
    	
    	/**
    	 * 通过name得到Course
    	 * @param name
    	 * @return
    	 */
    	public Course getCourseByName(String name) {
    		String sql = "select * from course where name ='" + name + "'";
    		Connection conn = DBUtil.getConn();
    		Statement state = null;
    		ResultSet rs = null;
    		Course course = null;
    		
    		try {
    			state = conn.createStatement();
    			rs = state.executeQuery(sql);
    			while (rs.next()) {
    				int id = rs.getInt("id");
    				String teacher = rs.getString("teacher");
    				String classroom = rs.getString("classroom");
    				course = new Course(id, name, teacher, classroom);
    			}
    		} catch (Exception e) {
    			e.printStackTrace();
    		} finally {
    			DBUtil.close(rs, state, conn);
    		}
    		
    		return course;
    	}
    	
    	/**
    	 * 查找
    	 * @param name
    	 * @param teacher
    	 * @param classroom
    	 * @return
    	 */
    	public List<Course> search(String name, String teacher, String classroom) {
    		String sql = "select * from course where ";
    		if (name != "") {
    			sql += "name like '%" + name + "%'";
    		}
    		if (teacher != "") {
    			sql += "teacher like '%" + teacher + "%'";
    		}
    		if (classroom != "") {
    			sql += "classroom like '%" + classroom + "%'";
    		}
    		List<Course> list = new ArrayList<>();
    		Connection conn = DBUtil.getConn();
    		Statement state = null;
    		ResultSet rs = null;
    
    		try {
    			state = conn.createStatement();
    			rs = state.executeQuery(sql);
    			Course bean = null;
    			while (rs.next()) {
    				int id = rs.getInt("id");
    				String name2 = rs.getString("name");
    				String teacher2 = rs.getString("teacher");
    				String classroom2 = rs.getString("classroom");
    				bean = new Course(id, name2, teacher2, classroom2);
    				list.add(bean);
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally {
    			DBUtil.close(rs, state, conn);
    		}
    		
    		return list;
    	}
    	
    	/**
    	 * 全部数据
    	 * @param name
    	 * @param teacher
    	 * @param classroom
    	 * @return
    	 */
    	public List<Course> list() {
    		String sql = "select * from course";
    		List<Course> list = new ArrayList<>();
    		Connection conn = DBUtil.getConn();
    		Statement state = null;
    		ResultSet rs = null;
    
    		try {
    			state = conn.createStatement();
    			rs = state.executeQuery(sql);
    			Course bean = null;
    			while (rs.next()) {
    				int id = rs.getInt("id");
    				String name2 = rs.getString("name");
    				String teacher2 = rs.getString("teacher");
    				String classroom2 = rs.getString("classroom");
    				bean = new Course(id, name2, teacher2, classroom2);
    				list.add(bean);
    			}
    		} catch (SQLException e) {
    			e.printStackTrace();
    		} finally {
    			DBUtil.close(rs, state, conn);
    		}
    		
    		return list;
    	}
    
    }
    
    package com.hjf.entity;
    
    public class Course {
    
    	private int id;
    	private String name;
    	private String teacher;
    	private String classroom;
    	
    	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 getClassroom() {
    		return classroom;
    	}
    	public void setClassroom(String classroom) {
    		this.classroom = classroom;
    	}
    	
    	public Course() {}
    	
    	public Course(int id, String name, String teacher, String classroom) {
    		this.id = id;
    		this.name = name;
    		this.teacher = teacher;
    		this.classroom = classroom;
    	}
    	
    	public Course(String name, String teacher, String classroom) {
    		this.name = name;
    		this.teacher = teacher;
    		this.classroom = classroom;
    	}
    }
    
    package com.hjf.service;
    
    import java.util.List;
    
    import com.hjf.dao.CourseDao;
    import com.hjf.entity.Course;
    
    /**
     * CourseService
     * 服务层
     * @author Hu
     *
     */
    public class CourseService {
    
        CourseDao cDao = new CourseDao();
        
        /**
         * 添加
         * @param course
         * @return
         */
        public boolean add(Course course) {
            boolean f = false;
            if(!cDao.name(course.getName())) {
                cDao.add(course);
                f = true;
            }
            return f;
        }
        
        /**
         * 删除
         */
        public void del(int id) {
            cDao.delete(id);
        }
        
        /**
         * 修改
         * @return 
         */
        public void update(Course course) {
            cDao.update(course);
        }
        
        /**
         * 通过ID得到一个Course
         * @return 
         */
        public Course getCourseById(int id) {
            return cDao.getCourseById(id);
        }
    
        /**
         * 通过Name得到一个Course
         * @return 
         */
        public Course getCourseByName(String name) {
            return cDao.getCourseByName(name);
        }
        
        /**
         * 查找
         * @return 
         */
        public List<Course> search(String name, String teacher, String classroom) {
            return cDao.search(name, teacher, classroom);
        }
        
        /**
         * 全部数据
         * @return 
         */
        public List<Course> list() {
            return cDao.list();
        }
    }
    package com.hjf.util;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    
    /**
     * 数据库连接工具
     * @author Hu
     *
     */
    public class DBUtil {
        
        public static String db_url = "jdbc:mysql://localhost:3306/course?useSSL=false";
        public static String db_user = "root";
        public static String db_pass = "123456";
        
        public static Connection getConn () {
            Connection conn = null;
            
            try {
                Class.forName("com.mysql.jdbc.Driver");//加载驱动
                conn = DriverManager.getConnection(db_url, db_user, db_pass);
            } catch (Exception e) {
                e.printStackTrace();
            }
            
            return conn;
        }
        
        /**
         * 关闭连接
         * @param state
         * @param conn
         */
        public static void close (Statement state, Connection conn) {
            if (state != null) {
                try {
                    state.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        
        public static void close (ResultSet rs, Statement state, Connection conn) {
            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            
            if (state != null) {
                try {
                    state.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    
    }
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <style>
        .a{
            margin-top: 20px;
        }
        .b{
            font-size: 20px;
             160px;
            color: white;
            background-color: greenyellow;
        }
    </style>
    </head>
    <body>
        <%
             Object message = request.getAttribute("message");
             if(message!=null && !"".equals(message)){
         
        %>
             <script type="text/javascript">
                  alert("<%=request.getAttribute("message")%>");
             </script>
        <%} %>
        <div align="center">
            <h1 style="color: red;">课程信息录入</h1>
            <a href="index.jsp">返回主页</a>
            <form action="CourseServlet?method=add" method="post" onsubmit="return check()">
                <div class="a">
                    课程名称<input type="text" id="name" name="name"/>
                </div>
                <div class="a">
                    任课教师<input type="text" id="teacher" name="teacher" />
                </div>
                <div class="a">
                    上课地点<input type="text" id="classroom" name="classroom" />
                </div>
                <div class="a">
                    <button type="submit" class="b">保&nbsp;&nbsp;&nbsp;存</button>
                </div>
            </form>
        </div>
        <script type="text/javascript">
            function check() {
                var name = document.getElementById("name");;
                var teacher = document.getElementById("teacher");
                var classroom = document.getElementById("classroom");
                
                //非空
                if(name.value == '') {
                    alert('课程名称为空');
                    name.focus();
                    return false;
                }
                if(teacher.value == '') {
                    alert('教师为空');
                    teacher.focus();
                    return false;
                }
                if(classroom.value == '') {
                    alert('上课地点为空');
                    classroom.focus();
                    return false;
                }
                
                //教师
                if(teacher.value != '王建民' && teacher.value != '王辉' && teacher.value != '刘丹' && teacher.value != '刘立嘉' && teacher.value != '杨子光'){
                    alert('教师名称错误');
                    return false;
                }
                
                //教室
                if(!/^基教/.test(classroom.value) && !/^一教/.test(classroom.value) && !/^二教/.test(classroom.value) && !/^三教/.test(classroom.value)) {
                    alert('上课地点错误');
                    return false;
                }
            }
        </script>
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <style>
        .a{
            margin-top: 20px;
        }
        .b{
            font-size: 20px;
             160px;
            color: white;
            background-color: greenyellow;
        }
    </style>
    </head>
    <body>
        <%
             Object message = request.getAttribute("message");
             if(message!=null && !"".equals(message)){
         
        %>
             <script type="text/javascript">
                  alert("<%=request.getAttribute("message")%>");
             </script>
        <%} %>
        <div align="center">
            <h1 style="color: red;">课程信息删除</h1>
            <a href="index.jsp">返回主页</a>
            <form action="CourseServlet?method=getcoursebyname" method="post" onsubmit="return check()">
                <div class="a">
                    课程名称<input type="text" id="name" name="name"/>
                </div>
                <div class="a">
                    <button type="submit" class="b">查&nbsp;&nbsp;&nbsp;找</button>
                </div>
            </form>
        </div>
        <script type="text/javascript">
            function check() {
                var name = document.getElementById("name");;
                
                //非空
                if(name.value == '') {
                    alert('课程名称为空');
                    name.focus();
                    return false;
                }
            }
        </script>
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <style>
        .a{
            margin-top: 20px;
        }
        .b{
            font-size: 20px;
             160px;
            color: white;
            background-color: greenyellow;
        }
        .tb, td {
            border: 1px solid black;
            font-size: 22px;
        }
    </style>
    </head>
    <body>
        <div align="center">
            <h1 style="color: red;">课程信息删除</h1>
            <a href="index.jsp">返回主页</a>
            <table class="tb">
                <tr>
                    <td>课程名称</td>
                    <td>${course.name}</td>
                </tr>
                <tr>
                    <td>任课教师</td>
                    <td>${course.teacher}</td>
                </tr>
                <tr>
                    <td>上课地点</td>
                    <td>${course.classroom}</td>
                </tr>
            </table>
            <div class="a">
                <a onclick="return check()" href="CourseServlet?method=del&id=${course.id}">删&nbsp;&nbsp;&nbsp;除</a>
            </div>
        </div>
        <script type="text/javascript">
            function check() {
                if (confirm("真的要删除吗?")){
                    return true;
                }else{
                    return false;
                }
            }
        </script>
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <style>
        .a{
            margin-top: 20px;
        }
        .b{
            font-size: 20px;
             160px;
            color: white;
            background-color: greenyellow;
        }
    </style>
    </head>
    <body>
        <%
             Object message = request.getAttribute("message");
             if(message!=null && !"".equals(message)){
         
        %>
             <script type="text/javascript">
                  alert("<%=request.getAttribute("message")%>");
             </script>
        <%} %>
        <div align="center">
            <h1 style="color: red;">课程信息修改</h1>
            <a href="index.jsp">返回主页</a>
            <form action="CourseServlet?method=update" method="post" onsubmit="return check()">
                <div class="a">
                    课程名称<input type="text" id="name" name="name" value="${course.name}"/>
                </div>
                <div class="a">
                    任课教师<input type="text" id="teacher" name="teacher" value="${course.teacher}"/>
                </div>
                <div class="a">
                    上课地点<input type="text" id="classroom" name="classroom" value="${course.classroom}"/>
                </div>
                <input type="hidden" id="id" name="id" value="${course.id}"/>
                <div class="a">
                    <button type="submit" class="b">修&nbsp;&nbsp;&nbsp;改</button>
                </div>
            </form>
        </div>
        <script type="text/javascript">
            function check() {
                var name = document.getElementById("name");;
                var teacher = document.getElementById("teacher");
                var classroom = document.getElementById("classroom");
                
                //非空
                if(name.value == '') {
                    alert('课程名称为空');
                    name.focus();
                    return false;
                }
                if(teacher.value == '') {
                    alert('教师为空');
                    teacher.focus();
                    return false;
                }
                if(classroom.value == '') {
                    alert('上课地点为空');
                    classroom.focus();
                    return false;
                }
                
                //教师
                if(teacher.value != '王建民' && teacher.value != '王辉' && teacher.value != '刘丹' && teacher.value != '刘立嘉' && teacher.value != '杨子光'){
                    alert('教师名称错误');
                    return false;
                }
                
                //教室
                if(!/^基教/.test(classroom.value) && !/^一教/.test(classroom.value) && !/^二教/.test(classroom.value) && !/^三教/.test(classroom.value)) {
                    alert('上课地点错误');
                    return false;
                }
            }
        </script>
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>首页</title>
    <style>
        .a{
            font-size: 26px;
            margin-top: 20px;
        }
    </style>
    </head>
    <body>
        <div align="center">
            <h1 style="color: red;">课程基本信息管理系统</h1>
            <div class="a">
                <a href="add.jsp">课程信息录入</a>
            </div>
            <div class="a">
                <a href="CourseServlet?method=list">课程信息修改</a>
            </div>
            <div class="a">
                <a href="del.jsp">课程信息删除</a>
            </div>
            <div class="a">
                <a href="search.jsp">课程信息查询</a>
            </div>
        </div>
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <style>
        .a{
            margin-top: 20px;
        }
        .b{
            font-size: 20px;
             160px;
            color: white;
            background-color: greenyellow;
        }
        .tb, td {
            border: 1px solid black;
            font-size: 22px;
        }
    </style>
    </head>
    <body>
        <%
             Object message = request.getAttribute("message");
             if(message!=null && !"".equals(message)){
         
        %>
             <script type="text/javascript">
                  alert("<%=request.getAttribute("message")%>");
             </script>
        <%} %>
        <div align="center">
            <h1 style="color: red;">课程信息列表</h1>
            <a href="index.jsp">返回主页</a>
            <table class="tb">
                <tr>
                    <td>id</td>
                    <td>课程名称</td>
                    <td>任课教师</td>
                    <td>上课地点</td>
                    <td align="center" colspan="2">操作</td>
                </tr>
                <c:forEach items="${courses}" var="item">
                    <tr>
                        <td>${item.id}</td>
                        <td>${item.name}</td>
                        <td>${item.teacher}</td>
                        <td>${item.classroom}</td>
                        <td><a href="CourseServlet?method=getcoursebyid&id=${item.id}">修改</a></td>
                    </tr>
                </c:forEach>
            </table>
        </div>
    </body>
    </html>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <style>
        .a{
            margin-top: 20px;
        }
        .b{
            font-size: 20px;
             160px;
            color: white;
            background-color: greenyellow;
        }
    </style>
    </head>
    <body>
        <div align="center">
            <h1 style="color: red;">课程信息查询</h1>
            <a href="index.jsp">返回主页</a>
            <form action="CourseServlet?method=search" method="post" onsubmit="return check()">
                <div class="a">
                    课程名称<input type="text" id="name" name="name"/>
                </div>
                <div class="a">
                    任课教师<input type="text" id="teacher" name="teacher" />
                </div>
                <div class="a">
                    上课地点<input type="text" id="classroom" name="classroom" />
                </div>
                <div class="a">
                    <button type="submit" class="b">查&nbsp;&nbsp;&nbsp;询</button>
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <style>
        .a{
            margin-top: 20px;
        }
        .b{
            font-size: 20px;
             160px;
            color: white;
            background-color: greenyellow;
        }
        .tb, td {
            border: 1px solid black;
            font-size: 22px;
        }
    </style>
    </head>
    <body>
        <div align="center">
            <h1 style="color: red;">课程信息列表</h1>
            <a href="index.jsp">返回主页</a>
            <table class="tb">
                <tr>
                    <td>id</td>
                    <td>课程名称</td>
                    <td>任课教师</td>
                    <td>上课地点</td>
                </tr>
                <!-- forEach遍历出adminBeans -->
                <c:forEach items="${courses}" var="item" varStatus="status">
                    <tr>
                        <td>${item.id}</td>
                        <td><a>${item.name}</a></td>
                        <td>${item.teacher}</td>
                        <td>${item.classroom}</td>
                    </tr>
                </c:forEach>
            </table>
        </div>
    </body>
    </html>
  • 相关阅读:
    linux下编译GDAL3.x(集成Proj和Geos等)
    CSS后代选择器、子元素选择器、相邻兄弟选择器区别与详解
    CSS hover伪类改变其他元素的样式
    PHP 删除数组指定元素
    CakePHP 调试方法 汇总
    Linux/Mac OS 在终端使用 code 命令打开项目 VSCode
    苹果 MacOS 安装 Source Code Pro
    MacOS 安装 Homebrew 错误处理 Connection refused
    修改 VSCode 终端 Terminal 的字体
    spring cloud gateway自定义过滤器
  • 原文地址:https://www.cnblogs.com/zhang12345/p/10093895.html
Copyright © 2020-2023  润新知