JSP-Servlet+Mybatis电影管理系统技能测试题
以下是一个基于JSP-Servlet和Mybatis的电影管理系统的技能测试题的代码示例:\n\n1. 创建电影表和电影分类表的SQL语句:\n\nsql\nCREATE TABLE movie (\nid INT PRIMARY KEY AUTO_INCREMENT,\nname VARCHAR(100) NOT NULL,\ncategory_id INT NOT NULL,\nrelease_date DATE,\ndirector VARCHAR(100),\ndescription TEXT\n);\n\nCREATE TABLE category (\nid INT PRIMARY KEY AUTO_INCREMENT,\nname VARCHAR(100) NOT NULL\n);\n\n\n2. 手工录入分类表中的数据:\n\nsql\nINSERT INTO category (name) VALUES ('动作');\nINSERT INTO category (name) VALUES ('喜剧');\nINSERT INTO category (name) VALUES ('爱情');\nINSERT INTO category (name) VALUES ('科幻');\nINSERT INTO category (name) VALUES ('恐怖');\nINSERT INTO category (name) VALUES ('剧情');\n\n\n3. 导入必要的jar包,例如:Mybatis、MySQL Connector/J等。\n\n4. 列表模块功能的代码(使用Mybatis进行数据库操作):\n\njava\npublic class MovieListServlet extends HttpServlet {\n protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n String keyword = request.getParameter("keyword");\n List<Movie> movies = MovieDao.searchMovies(keyword);\n request.setAttribute("movies", movies);\n request.getRequestDispatcher("list.jsp").forward(request, response);\n }\n}\n\npublic class MovieDao {\n public static List<Movie> searchMovies(String keyword) {\n SqlSession sqlSession = null;\n try {\n sqlSession = MybatisUtil.getSqlSession();\n MovieMapper movieMapper = sqlSession.getMapper(MovieMapper.class);\n return movieMapper.searchMovies(keyword);\n } finally {\n if (sqlSession != null) {\n sqlSession.close();\n }\n }\n }\n}\n\npublic interface MovieMapper {\n List<Movie> searchMovies(String keyword);\n}\n\n\n5. 添加模块功能的代码:\n\njava\npublic class MovieAddServlet extends HttpServlet {\n protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n String name = request.getParameter("name");\n int categoryId = Integer.parseInt(request.getParameter("categoryId"));\n String releaseDate = request.getParameter("releaseDate");\n String director = request.getParameter("director");\n String description = request.getParameter("description");\n Movie movie = new Movie(name, categoryId, releaseDate, director, description);\n MovieDao.addMovie(movie);\n response.sendRedirect("list");\n }\n}\n\npublic class MovieDao {\n public static void addMovie(Movie movie) {\n SqlSession sqlSession = null;\n try {\n sqlSession = MybatisUtil.getSqlSession();\n MovieMapper movieMapper = sqlSession.getMapper(MovieMapper.class);\n movieMapper.addMovie(movie);\n sqlSession.commit();\n } finally {\n if (sqlSession != null) {\n sqlSession.close();\n }\n }\n }\n}\n\npublic interface MovieMapper {\n void addMovie(Movie movie);\n}\n\n\n6. 使用ajax验证电影名称的唯一性的代码:\n\njava\npublic class MovieCheckNameServlet extends HttpServlet {\n protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n String name = request.getParameter("name");\n boolean isUnique = MovieDao.isMovieNameUnique(name);\n response.getWriter().write(String.valueOf(isUnique));\n }\n}\n\npublic class MovieDao {\n public static boolean isMovieNameUnique(String name) {\n SqlSession sqlSession = null;\n try {\n sqlSession = MybatisUtil.getSqlSession();\n MovieMapper movieMapper = sqlSession.getMapper(MovieMapper.class);\n return movieMapper.getMovieByName(name) == null;\n } finally {\n if (sqlSession != null) {\n sqlSession.close();\n }\n }\n }\n}\n\npublic interface MovieMapper {\n Movie getMovieByName(String name);\n}\n\n\n7. 修改模块功能的代码:\n\njava\npublic class MovieEditServlet extends HttpServlet {\n protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n int id = Integer.parseInt(request.getParameter("id"));\n String name = request.getParameter("name");\n int categoryId = Integer.parseInt(request.getParameter("categoryId"));\n String releaseDate = request.getParameter("releaseDate");\n String director = request.getParameter("director");\n String description = request.getParameter("description");\n Movie movie = new Movie(id, name, categoryId, releaseDate, director, description);\n MovieDao.updateMovie(movie);\n response.sendRedirect("list");\n }\n}\n\npublic class MovieDao {\n public static void updateMovie(Movie movie) {\n SqlSession sqlSession = null;\n try {\n sqlSession = MybatisUtil.getSqlSession();\n MovieMapper movieMapper = sqlSession.getMapper(MovieMapper.class);\n movieMapper.updateMovie(movie);\n sqlSession.commit();\n } finally {\n if (sqlSession != null) {\n sqlSession.close();\n }\n }\n }\n}\n\npublic interface MovieMapper {\n void updateMovie(Movie movie);\n}\n\n\n8. 删除模块功能的代码:\n\njava\npublic class MovieDeleteServlet extends HttpServlet {\n protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n int id = Integer.parseInt(request.getParameter("id"));\n MovieDao.deleteMovie(id);\n response.sendRedirect("list");\n }\n}\n\npublic class MovieDao {\n public static void deleteMovie(int id) {\n SqlSession sqlSession = null;\n try {\n sqlSession = MybatisUtil.getSqlSession();\n MovieMapper movieMapper = sqlSession.getMapper(MovieMapper.class);\n movieMapper.deleteMovie(id);\n sqlSession.commit();\n } finally {\n if (sqlSession != null) {\n sqlSession.close();\n }\n }\n }\n}\n\npublic interface MovieMapper {\n void deleteMovie(int id);\n}\n\n\n9. 在添加与修改页面中,下拉框显示所属分类的代码:\n\njava\npublic class MovieAddEditServlet extends HttpServlet {\n protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {\n List<Category> categories = CategoryDao.getAllCategories();\n request.setAttribute("categories", categories);\n request.getRequestDispatcher("add_edit.jsp").forward(request, response);\n }\n}\n\npublic class CategoryDao {\n public static List<Category> getAllCategories() {\n SqlSession sqlSession = null;\n try {\n sqlSession = MybatisUtil.getSqlSession();\n CategoryMapper categoryMapper = sqlSession.getMapper(CategoryMapper.class);\n return categoryMapper.getAllCategories();\n } finally {\n if (sqlSession != null) {\n sqlSession.close();\n }\n }\n }\n}\n\npublic interface CategoryMapper {\n List<Category> getAllCategories();\n}\n\n\n10. 代码规范及注释:代码应符合Java编码规范,并且应添加适当的注释来说明代码的功能和实现原理。\n\n
原文地址: https://www.cveoy.top/t/topic/p54m 著作权归作者所有。请勿转载和采集!