家居网购项目实现04
以下皆为部分代码,详见 https://github.com/liyuelian/furniture_mall.git
10.功能09-后台管理 删除家居
10.1需求分析/图解
需求如下:
- 管理员进入到家居管理页面
- 点击删除家居连接,弹出确认窗口,确认删除,取消放弃
10.2思路分析
10.3代码实现
10.3.1dao层
FurnDAO接口
/**
* 通过传入的id,删除furn表中对应的记录
*
* @param id id
* @return 返回受影响的行数
*/
public int deleteFurnById(int id);
FurnDAOImpl
@Override
public int deleteFurnById(int id) {
String sql = "DELETE FROM `furn` WHERE `id`=?;";
return update(sql, id);
}
10.3.2service层
FurnService接口
/**
* 根据id删除对应的家居信息
*
* @param id id
* @return 返回修改表的行数
*/
public int deleteFurnById(int id);
FurnServiceImpl
@Override
public int deleteFurnById(int id) {
return furnDAO.deleteFurnById(id);
}
测试类
@Test
public void deleteFurnById() {
if (furnService.deleteFurnById(24) != 0) {
System.out.println("删除成功");
} else {
System.out.println("删除失败");
}
}
10.3.3web层
FurnServlet
/**
* 处理删除家居的请求
*
* @param req
* @param resp
* @throws ServletException
* @throws IOException
*/
protected void delete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//获取请求删除的家居id
String id = req.getParameter("id");
//防止接收的id不是一个数字型的字符串
furnService.deleteFurnById(DataUtils.parseInt(id, 0));
//重定向到家居列表页-该地址由浏览器解析
resp.sendRedirect(req.getContextPath() + "/manage/furnServlet?action=list");
}
10.3.4前端页面校验
furn_manage.jsp添加校验
<%--引入jquery--%>
<script type="text/java script" src="script/jquery-3.6.0.min.js"></script>
<script type="text/java script">
$(function () {
//获取删除id,绑定事件
$("a.deleteFurn").click(function () {
//获取要删除的家居的名字
var furnName = $(this).parent().parent().find("td:eq(1)").text();
//confirm弹出的窗口,点击确定返回true,点击取消返回false
return confirm("确认要删除"+furnName+"吗?");
})
})
</script>
10.4完成测试
点击删除
删除成功
11.功能10-后台管理 修改家居
11.1需求分析/图解
- 管理员进入到家居管理页面furn_manage.jsp,点击修改按钮,跳转到furn_update.jsp
- 在furn_update.jsp先回显该家居信息
- 在框中填写新的信息,点击修改家居按钮
- 修改成功后,回到展示页面,重新刷新显示家居列表
11.2思路分析
11.3代码实现
11.3.1dao层
FurnDAO接口
/**
* 通过传入的id,返回furn表中对应的furn对象
* @param id id
* @return 返回furn表中对应的furn对象
*/
public Furn queryFurnById(int id);
/**
* 通过传入的furn对象,修改furn表对应的记录的字段值
* @param furn 传入的furn对象
* @return 返回受影响的行数
*/
public int updateFurn(Furn furn);
FurnDAOImpl
@Override
public Furn queryFurnById(int id) {
String sql = "SELECT `id` , `name` , `maker` , `price` , `sales` , `stock` , `img_path` AS imgPath " +
"FROM `furn` WHERE id=?";
return querySingle(sql, Furn.class, id);
}
@Override
public int updateFurn(Furn furn) {
String sql = "UPDATE `furn` " +
"SET `name`=?, `maker`=?,`price`=?,`sales`=?,`stock`=?,`img_path`=? " +
"WHERE `id`=?";
return update(sql, furn.getName(), furn.getMaker(), furn.getPrice(),
furn.getSales(), furn.getStock(), furn.getImgPath(), furn.getId());
}
FurnDAOImplTest
@Test
public void queryFurnById() {
Furn furn = furnDAO.queryFurnById(1);
System.out.println(furn);
}
@Test
public void updateFurn() {
Furn furn = new Furn(39,"king","皇家家居",new BigDecimal(999),
88,99,"assets/images/product-image/default.jpg");
int i = furnDAO.updateFurn(f