1. 创建电影表和电影分类表的SQL语句如下:
CREATE TABLE movie (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(100) NOT NULL,
  category_id INT NOT NULL,
  release_date DATE,
  duration INT,
  director VARCHAR(100),
  description TEXT
);

CREATE TABLE category (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(50) NOT NULL
);
  1. 手工录入分类表的数据:
INSERT INTO category (name) VALUES ('动作');
INSERT INTO category (name) VALUES ('喜剧');
INSERT INTO category (name) VALUES ('爱情');
INSERT INTO category (name) VALUES ('科幻');
INSERT INTO category (name) VALUES ('恐怖');
  1. 创建WEB项目,导入必要的jar包,包括但不限于:mybatis、mysql-connector-java、servlet-api等。

  2. 列表模块功能的实现,按照名称模糊查询,可以使用mybatis的动态SQL来实现:

public List<Movie> searchMoviesByName(String keyword) {
  SqlSession session = sessionFactory.openSession();
  try {
    MovieMapper mapper = session.getMapper(MovieMapper.class);
    return mapper.searchMoviesByName(keyword);
  } finally {
    session.close();
  }
}
<!-- MovieMapper.xml -->
<select id="searchMoviesByName" parameterType="String" resultType="Movie">
  SELECT * FROM movie WHERE name LIKE CONCAT('%', #{keyword}, '%')
</select>
  1. 添加模块功能的实现,可以使用mybatis的insert语句:
public void addMovie(Movie movie) {
  SqlSession session = sessionFactory.openSession();
  try {
    MovieMapper mapper = session.getMapper(MovieMapper.class);
    mapper.addMovie(movie);
    session.commit();
  } finally {
    session.close();
  }
}
<!-- MovieMapper.xml -->
<insert id="addMovie" parameterType="Movie">
  INSERT INTO movie (name, category_id, release_date, duration, director, description)
  VALUES (#{name}, #{categoryId}, #{releaseDate}, #{duration}, #{director}, #{description})
</insert>
  1. 使用ajax验证电影名称的唯一性,可以编写一个Servlet来处理异步请求:
@WebServlet("/checkMovieName")
public class CheckMovieNameServlet extends HttpServlet {
  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String name = request.getParameter("name");
    SqlSession session = sessionFactory.openSession();
    try {
      MovieMapper mapper = session.getMapper(MovieMapper.class);
      Movie movie = mapper.getMovieByName(name);
      if (movie != null) {
        response.getWriter().write("false");
      } else {
        response.getWriter().write("true");
      }
    } finally {
      session.close();
    }
  }
}
// 前端代码
$.ajax({
  url: "/checkMovieName",
  type: "GET",
  data: {name: movieName},
  success: function(result) {
    if (result === "true") {
      // 电影名称可用
    } else {
      // 电影名称已存在
    }
  }
});
  1. 修改模块功能的实现,可以使用mybatis的update语句:
public void updateMovie(Movie movie) {
  SqlSession session = sessionFactory.openSession();
  try {
    MovieMapper mapper = session.getMapper(MovieMapper.class);
    mapper.updateMovie(movie);
    session.commit();
  } finally {
    session.close();
  }
}
<!-- MovieMapper.xml -->
<update id="updateMovie" parameterType="Movie">
  UPDATE movie SET name = #{name}, category_id = #{categoryId}, release_date = #{releaseDate},
  duration = #{duration}, director = #{director}, description = #{description}
  WHERE id = #{id}
</update>
  1. 删除模块功能的实现,可以使用mybatis的delete语句:
public void deleteMovie(int id) {
  SqlSession session = sessionFactory.openSession();
  try {
    MovieMapper mapper = session.getMapper(MovieMapper.class);
    mapper.deleteMovie(id);
    session.commit();
  } finally {
    session.close();
  }
}
<!-- MovieMapper.xml -->
<delete id="deleteMovie" parameterType="int">
  DELETE FROM movie WHERE id = #{id}
</delete>
  1. 在添加与修改页面中,下拉框显示所属分类,可以通过查询分类表获取数据:
public List<Category> getAllCategories() {
  SqlSession session = sessionFactory.openSession();
  try {
    CategoryMapper mapper = session.getMapper(CategoryMapper.class);
    return mapper.getAllCategories();
  } finally {
    session.close();
  }
}
<!-- CategoryMapper.xml -->
<select id="getAllCategories" resultType="Category">
  SELECT * FROM category
</select>
  1. 代码规范及注释:
  • 代码应符合Java命名规范,类名使用驼峰命名法,方法名使用小驼峰命名法,变量名尽量具有描述性。
  • 适当添加注释,解释代码的功能、参数、返回值等。
  • 使用合适的缩进和空格,使代码易读
1启动mysql数据库创建两张表 电影表、电影分类表10分2在mysql中手工录入分类表中的数据10分3创建WEB项目导入必要jar包10分4完成列表模块功能按照名称模糊查询10分5完成添加模块功能10分6使用ajax验证电影名称的唯一性10分7完成修改模块功能10分8完成删除模块功能10分9在添加与修改页面中下拉框显示所属分类其中数据从分类表中获取10分10代码规范及注释10分使用mybatis

原文地址: http://www.cveoy.top/t/topic/in0S 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录