Config:Mapper.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-////DTD Mapper 3.0//EN""/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.ry.Dao.ProductDao"><!-- 5.默认情况下,ORM是根据列名和实体的属性名对应--><!-- 6.也可以使用resultMap进行规定--><resultMap type="com.ry.model.Product" id="productMap"><result column="Id" property="Id" javaType="Integer" jdbcType="INTEGER" /><result column="product_no" property="product_no" javaType="Integer"jdbcType="INTEGER" /><result column="product_name" property="product_name" javaType="String"jdbcType="VARCHAR" /><result column="product_type" property="product_type" javaType="String"jdbcType="VARCHAR" /><result column="Status" property="Status" javaType="Integer"jdbcType="INTEGER" /></resultMap><select id="selectByNameAndIDAndStatus" parameterType="com.ry.model.Product"resultMap="productMap">select*from product where 1=1<if test="product_no!=null">and product_no=#{product_no}</if><if test="product_name!=null">and product_name =#{product_name}</if><if test="Status!=-1">and Status =#{Status}</if></select><insert id="insertProduct" parameterType="com.ry.model.Product">insert into product(product_no,product_name,product_type,Status) values(#{product_no},#{product_name},#{product_type},#{Status})</insert><delete id="deleteProduct" parameterType="com.ry.model.Product">delete from productwhere product_no=#{product_no}</delete><update id="updataProduct" parameterType="com.ry.model.Product"> update product setproduct_no=#{product_no},product_name=#{product_name},product_type=#{product_type},Status =#{Status} </update></mapper>MyBatis.xml<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-////DTD Config 3.0//EN""/dtd/mybatis-3-config.dtd"><configuration><environments default="development"><environment id="development"><transactionManager type="JDBC" /><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/orcl" /><property name="username" value="root" /><property name="password" value="888888" /></dataSource></environment></environments><mappers><mapper resource="com/ry/config/product-mapper.xml" /> </mappers></configuration>Dao:package com.ry.Dao;import java.util.List;import com.ry.model.Product;public interface ProductDao {List<Product> selectByNameAndIDAndStatus(Product product);int insertProduct(Product product);int deleteProduct(Integer product_no);int updataProduct(Product product);}Service:package com.ry.service;import java.util.List;import com.ry.model.Product;public interface ProductService {List<Product> queryByIdAndNameAndStatus(Product product);boolean addProduct(Product product);boolean deleteProduct(Integer product_no);boolean updata(Product product);boolean doesExist(Product product);}ServiceImpl:package com.ry.serviceImpl;import java.io.IOException;import java.io.InputStream;import java.util.List;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import com.ry.Dao.ProductDao;import com.ry.model.Product;import com.ry.service.ProductService;public class ProductServiceImpl implements ProductService {private ProductDao productDao;private SqlSession session;public ProductServiceImpl() {try {InputStream config = Resources.getResourceAsStream("com/ry/config/product-mybatis.xml");SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();SqlSessionFactory factory = builder.build(config);session = factory.openSession();productDao = session.getMapper(ProductDao.class);} catch (IOException e) {e.printStackTrace();}}@Overridepublic List<Product> queryByIdAndNameAndStatus(Product product) {List<Product> products = productDao.selectByNameAndIDAndStatus(product);mit(true);return products;}@Overridepublic boolean addProduct(Product product) {int result = -1;result = productDao.insertProduct(product);mit(true);return result >= 1;}@Overridepublic boolean deleteProduct(Integer product_no) {int result1 = -1;result1 = productDao.deleteProduct(product_no);mit(true);return result1 > 0;}@Overridepublic boolean updata(Product product) {int result1 = -1;result1 = productDao.updataProduct(product);mit(true);return result1 > 0;}@Overridepublic boolean doesExist(Product product) {List<Product> products = null;products = productDao.selectByNameAndIDAndStatus(product);if (products == null) {return false;} else if (products.size() == 0) {return false;} else {return true;}}}QueryServlet:package com.ry.web;import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.ry.model.Product;import com.ry.service.ProductService;import com.ry.serviceImpl.ProductServiceImpl;/*** Servlet implementation class QueryServletpublic class QueryServlet extends HttpServlet {private ProductService productService = new ProductServiceImpl();protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {List<Product> results = null;Integer product_no = null;String product_name = null;Integer Status = null;Product product = new Product();request.setCharacterEncoding("UTF-8");String parm1 = request.getParameter("product_num");String parm2 = request.getParameter("product_name");String status = request.getParameter("status");if (parm1 != null && !(parm1.equals(""))) {product_no = Integer.parseInt(parm1);}if (parm2 != null && !(parm2.equals(""))) {product_name = parm2.trim();}Status = Integer.parseInt(status);product.setProduct_no(product_no);product.setProduct_name(product_name);product.setStatus(Status);results = productService.queryByIdAndNameAndStatus(product);request.setAttribute("results", results);request.getRequestDispatcher("index.jsp").forward(request, response);}}AddServlet:package com.ry.web;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.ry.model.Product;import com.ry.service.ProductService;import com.ry.serviceImpl.ProductServiceImpl;public class AddServlet extends HttpServlet {private ProductService productService = new ProductServiceImpl();protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");Product product = new Product();Integer product_no = null;String product_name = null;String product_type = null;Integer Status = null;String parm1 = request.getParameter("product_num");String parm2 = request.getParameter("product_name");String parm3 = request.getParameter("product_type");String parm4 = request.getParameter("status");if (parm1 != null && !(parm1.equals(""))) {product_no = Integer.parseInt(parm1);}if (parm2 != null && !(parm2.equals(""))) {product_name = parm2.trim();}if (parm3 != null && !(parm3.equals(""))) {product_type = parm3.trim();}Status = Integer.parseInt(parm4);product.setProduct_no(product_no);product.setProduct_name(product_name);product.setProduct_type(product_type);product.setStatus(Status);System.out.println(product);// 判断用户是否存在boolean doesExist = productService.doesExist(product);if (doesExist) {System.out.println("用户名已存在");request.setAttribute("msg", "2");request.getRequestDispatcher("add.jsp").forward(request, response);return;}boolean isSuccessful = productService.addProduct(product);request.setAttribute("msg", isSuccessful ? "0" : "1");request.getRequestDispatcher("add.jsp").forward(request, response);}}DeleteServlet:package com.ry.web;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.ry.service.ProductService;import com.ry.serviceImpl.ProductServiceImpl;public class DeleteServlet extends HttpServlet {private ProductService productService = new ProductServiceImpl();protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {Integer product_no = null;String param1 = request.getParameter("product_no");if (param1 == null) {System.out.println("参数operatorId获取失败");response.sendRedirect("index.jsp");return;} else {product_no = Integer.parseInt(param1.trim());}System.out.println(product_no);productService.deleteProduct(product_no);}}UpdataServlet:import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.ry.model.Product;import com.ry.service.ProductService;import com.ry.serviceImpl.ProductServiceImpl;public class UpdataServlet extends HttpServlet {private ProductService productService = new ProductServiceImpl();protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {request.setCharacterEncoding("UTF-8");Product product = new Product();Integer product_no = null;String product_name = null;String product_type = null;Integer Status = null;String parm1 = request.getParameter("product_num");String parm2 = request.getParameter("product_name");String parm3 = request.getParameter("product_type");String parm4 = request.getParameter("status");if (parm1 != null && !(parm1.equals(""))) {product_no = Integer.parseInt(parm1);}if (parm2 != null && !(parm2.equals(""))) {product_name = parm2.trim();}if (parm3 != null && !(parm3.equals(""))) {product_type = parm3.trim();}Status = Integer.parseInt(parm4);product.setProduct_no(product_no);product.setProduct_name(product_name);product.setProduct_type(product_type);product.setStatus(Status);productService.updata(product);response.sendRedirect("index.jsp");}}Index.jsp:<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@ taglib prefix="c" uri="/jsp/jstl/core"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title><script type="text/javascript">function open_add() {window.open("add.jsp", "增加", 'width=900px,height=500px');}function open_delete(a) {window.open("delete.jsp?product_no="+a,"删除",'width=450px,height=200px');}function open_updata(a,b,c,d) {window.open("updata.jsp?product_no="+a+"&product_name="+b+"&product_type="+c+"& status="+d,"修改",'width=900px,height=500px');}</script><style type="text/css">.main_index {position: absolute;left: 15%;top: 5%;width: 70%;height: 80%;background-color: #66ccff;}</style></head><body><div class="main_index"><h3>产品信息管理系统</h3><div class="cha_xun"><form action="QueryServlet?" method="post"><td>产品编号:</td><input name="product_num" type="text"placeholder="请输入产品编号"><td>产品名称:</td><input name="product_name" type="text"placeholder="请输入产品名称"><td><select name="status"><option value="-1" ${param.status==-1?'selected':''}>--</option><option value="1" ${param.status==1?'selected':''}>有效</option><option value="0" ${param.status==0?'selected':''}>无效</option></select></td><td><input type="submit" value="查询"></td><td><input type="button" onclick="open_add()" value="新增"></td> </form></div><div class="show_results"><table width="90%"><thead><tr bgcolor="#fba661" height="30"><th><div align="center">产品编号</div></th><th><div align="center">产品名称</div></th><th><div align="center">产品类型</div></th><th><div align="center">产品状态</div></th><th><div align="center">删除</div></th><th><div align="center">修改</div></th></tr></thead><tbody><c:if test="${not empty results }"><c:forEach var="product" items="${results}"><tr><th><divalign="center">${product.product_no}</div></th><th><divalign="center">${product.product_name}</div></th><th><divalign="center">${product.product_type}</div></th><th><div align="center">${product.status==1?"有效":"无效"}</div></th><th><div align="center"><input type="button"onclick="open_delete(${product.product_no})" value="删除"></div></th><th><div align="center"><input type="button"onclick="open_updata('${product.product_no}','${product.product_name}','${product.prod uct_type}','${product.status}')"value="修改"></div></th></tr></c:forEach></c:if></tbody></table></div></div></body></html>Add.jsp<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>新增产品信息</title></head><script>window.onload = _test;function _test() {var msg = "${msg}";if (msg == "1") {alert("产品已存在,无法重复添加!");} else if (msg == "0") {alert("产品信息添加成功!");window.close();// 关闭当前窗口} else if (msg == "2") {var a = document.getElementById("message");a.innerHTML = "该商品已存在";a.style = "color:red";}}function open_close() {if (confirm("您确定要关闭本页吗?")) {window.opener = null;window.open('', '_self');window.close();} else {}}function _check() {var re = new RegExp("^\\d{1,10}$");///^\d{1,10}$/;var product_num = document.getElementById("product_num").value;var product_name = document.getElementById("product_name").value;var product_type = document.getElementById("product_type").value;var status = document.getElementById("status").value;if (product_name == null || product_name == "") {alert("产品名称必填");return false;} else if (product_type == null || product_type == "") {alert("产品类型必填");return false;} else if (product_num == null || product_num == "") {alert("产品编号必填");return false;} else if (!re.test(product_num)) {alert("ID必须为正整数,且不能过长");return false;} else {return true;}}</script><style type="text/css">.main_index {position: absolute;left: 15%;top: 5%;width: 70%;height: 80%;background-color: #66ccff;}</style></head><body><div class="main_index" align="center"><h3>新增产品信息</h3><span id="message"></span><div class="add_tijiao"><form action="AddServlet" method="post" onsubmit="_check();"><div><tr><td><table width="535" border="1"><tr><td><div align="center">产品编号:<input name="product_num" id="product_num" type="text"placeholder="请输入产品编号"></div></td><td><div align="center">产品名称:<input name="product_name" id="product_name" type="text"placeholder="请输入产品名称"></div></td></tr><tr><td><div align="center">产品类型:<input name="product_type" id="product_type"type="text" placeholder="请输入产品名称"></div></td><td><div align="center">状态:<select name="status" id="status"><option value="-1"}>请选择</option><option value="1"}>有效</option><option value="0"}>无效</option></select></div></td></tr></table><input type="submit" value="保存"></td><td><input type="button" onclick="open_close()" value="关闭"></td></tr></div></form></div></div></body></html>Delete.jsp:<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><script>window.onload = _test;function _test() {var msg = "${msg1}";if (msg == "1") {alert("修改失败!");window.close();}else if (msg == "0") {alert("修改成功!");window.close();}}function open_close() {if (confirm("您确定要关闭本页吗?")) {window.opener = null;window.open('', '_self');window.close();} else {}}</script><body><div align="center"><form action="DeleteServlet" method="post"style="width: 100%; text-align: center;"><input type="hidden" name="product_no" value="${param.product_no}"><h3>是否确认删除账号${param.product_no}的用户</h3><input type="submit" value="确 定"></form></div><div align="center"><input type="submit" value="取 消" onclick="open_close()"></div></body></html>Updata.jsp:<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><script>function open_close() {if (confirm("您确定要关闭本页吗?")) {window.opener = null;window.open('', '_self');window.close();} else {}}function _check() {var product_num = document.getElementById("product_num").value;var product_name = document.getElementById("product_name").value;var product_type = document.getElementById("product_type").value;var status = document.getElementById("status").value;if (product_name == null || product_name == "") {alert("产品名称必填");return false;}if (product_type == null || product_type == "") {alert("产品类型必填");return false;}var re = new RegExp("^\\d{1,10}$");///^\d{1,10}$/;if (product_num == null || product_num == "") {alert("产品编号必填");return false;} else if (!re.test(product_num)) {alert("ID必须为正整数,且不能过长");return false;}return true;}</script><style type="text/css">.main_index {position: absolute;left: 15%;top: 5%;width: 70%;height: 80%;background-color: #66ccff;}</style></head><body><div class="main_index" align="center"><h3>修改产品信息</h3><div class="add_tijiao"><form action="UpdataServlet" method="post"onsubmit="return _check();"><div><tr><td><table width="535" border="1"><tr><td><div align="center">产品编号:<input readonly type="text" name="product_no"id="product_no" class="product_no"value="${param.product_no }"></div></td><td><div align="center">产品名称:<input name="product_name" type="text" id="product_name"value="${param.product_name }"></div></td></tr><tr><td><div align="center">产品类型:<input name="product_type" type="text"id="product_type"value="${param.product_type }"></div></td><td><div align="center">状态:<select name="status"><option value="-1" ${param.status==-1?"selected" : "" }>请选择</option><option value="1" ${param.status==1?"selected" : "" }>有效</option><option value="0" ${param.status==0?"selected" : "" }>无效</option></select></div></td></tr></table><input type="submit" value="保存"></td><td><input type="button" onclick="open_close()" value="关闭"></td></tr></div></form></div></div></body></html>Web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="/2001/XMLSchema-instance" xmlns="/xml/ns/javaee"xsi:schemaLocation="/xml/ns/javaee/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"><display-name>NanJingRuiYue</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>QueryServlet</display-name><servlet-name>QueryServlet</servlet-name><servlet-class>com.ry.web.QueryServlet</servlet-class></servlet><servlet-mapping><servlet-name>QueryServlet</servlet-name><url-pattern>/QueryServlet</url-pattern></servlet-mapping><servlet><description></description><display-name>UpdataServlet</display-name><servlet-name>UpdataServlet</servlet-name><servlet-class>com.ry.web.UpdataServlet</servlet-class> </servlet><servlet-mapping><servlet-name>UpdataServlet</servlet-name><url-pattern>/UpdataServlet</url-pattern></servlet-mapping><servlet><description></description><display-name>AddServlet</display-name><servlet-name>AddServlet</servlet-name><servlet-class>com.ry.web.AddServlet</servlet-class></servlet><servlet-mapping><servlet-name>AddServlet</servlet-name><url-pattern>/AddServlet</url-pattern></servlet-mapping><servlet><description></description><display-name>DeleteServlet</display-name><servlet-name>DeleteServlet</servlet-name><servlet-class>com.ry.web.DeleteServlet</servlet-class> </servlet><servlet-mapping><servlet-name>DeleteServlet</servlet-name><url-pattern>/DeleteServlet</url-pattern></servlet-mapping></web-app>Jar:jstl-1.2.jarmybatis-3.1.0-sources.jarmybatis-3.1.0.jarmysql-connector-java-5.1.5-bin.jarstandard.jar。