jsp+servlet手机管理(增加和修改二)

在以上篇我们写了实现列表功能

一 :新增功能

注意新增 不仅要增加手机 还要选择手机的品牌 , 我们可以将手机品牌做成下拉列表框

首先 在t_list.jsp列表页面新增一个a标签 跳转新增界面

<a href="<%=request.getContextPath()%>/tel?method=tosave">新增</a>

虽然样式有点丑 ,勉强还能看 。 我们跳到新增界面后

先实现添加时品牌动态从数据库读取

Dao

在dao层创建TbrandDao 接口

List<Tbrand> findAll();

接口实现类 TbrandDaoImpl

public List<Tbrand> findAll() {Connection connection=null;PreparedStatement preparedStatement=null;ResultSet resultSet=null;String sql="select * from t_brand";List<Tbrand> tbrandList=null;Tbrand tbrand=null;try {tbrandList=new ArrayList<>();connection = JDBCUtil.getConnection();preparedStatement = connection.prepareStatement(sql);resultSet = preparedStatement.executeQuery();while (resultSet.next()) {tbrand=new Tbrand();tbrand.setId(resultSet.getInt("id"));tbrand.setDname(resultSet.getString("dname"));tbrandList.add(tbrand);}}catch (Exception e){e.printStackTrace();}finally {JDBCUtil.close(resultSet,preparedStatement,connection);}return tbrandList;
}

与我们上一期的列表有些许相似

service

然后实现我们的service层

TbrandService 接口

List<Tbrand> findAll();

TbrandService 接口实现类 TbrandServiceImpl

public class TbrandServiceImpl implements TbrandService {private TbrandDao tbrandDao=new TbrandDaoImpl();@Overridepublic List<Tbrand> findAll() {return tbrandDao.findAll();}
}

Telservlet

在doPost方法中 还是老样子 判断请求地址

String method = request.getParameter("method");if ("findAll".equals(method)){findAll(request,response);}else if ("tosave".equals(method)){tosave(request,response);}
}private void tosave(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {List<Tbrand> tbrandList = tbrandService.findAll();request.setAttribute("tbrandList",tbrandList);request.getRequestDispatcher("/t_save.jsp").forward(request,response);
}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);
}

创建 新增页面 t_save.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>新增</title>
</head>
<body>
<form action="<%=request.getContextPath()%>/tel?method=saveTel" method="post">名称:<input type="text" name="name"><br>品牌:<select name="bid"><c:forEach items="${requestScope.tbrandList}" var="tbrandList"><option value="${tbrandList.id}">${tbrandList.dname}</option></c:forEach>
</select>
<input type="submit" value="提交">
</form>
</body>
</html>

接下来我们实现新增功能

在TelDao里 添加新方法

//新增
void save(Tel tel);

在TelDaoImpl接口实现类实现该方法

@Override
public void save(Tel tel) {Connection connection=null;PreparedStatement preparedStatement=null;String sql="insert into t_tel set name=?,bid=?";try {connection = JDBCUtil.getConnection();preparedStatement = connection.prepareStatement(sql);preparedStatement.setString(1,tel.getName());preparedStatement.setInt(2,tel.getBid());//更新操作preparedStatement.executeUpdate();}catch (Exception e){e.printStackTrace();}finally {JDBCUtil.close(null,preparedStatement,connection);}
}

下面就是TelService接口 添加新方法:

 void save(Tel tel);

TelServiceImpl 实现 新方法

public void save(Tel tel) {telDao.save(tel);
}

Telservlet

还是老样子 判断请求参数

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String method = request.getParameter("method");
if ("findAll".equals(method)){findAll(request,response);
}else if ("tosave".equals(method)){tosave(request,response);
}else if ("saveTel".equals(method)){saveTel(request,response);
}
}private void saveTel(HttpServletRequest request, HttpServletResponse response) throws IOException {String name = request.getParameter("name");String bid = request.getParameter("bid");Tel tel = new Tel();tel.setBid(Integer.parseInt(bid));tel.setName(name);telService.save(tel);response.sendRedirect(request.getContextPath()+"/tel?method=findAll");}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);  //千万不要忘记}

二: 更新功能

1. 我们先点击更新按钮实现一个数据的回显

<td><button οnclick="update(${vo.id})">更新</button>
</td>
<script>function update(id) {location.href="<%=request.getContextPath()%>/tel?method=toUpdate&id="+id}
</script>

根据Id来查站我们的数据

TelDao创建新方法

Tel findById(Integer id);

TelDaoImpl实现接口方法

public Tel findById(Integer id) {Connection connection=null;PreparedStatement preparedStatement=null;ResultSet resultSet=null;String sql="select id,name,bid from t_tel where id=?";Tel tel=null;try {connection = JDBCUtil.getConnection();preparedStatement = connection.prepareStatement(sql);//给id一个占位符preparedStatement.setInt(1,id);resultSet = preparedStatement.executeQuery();if (resultSet.next()) {tel=new Tel();tel.setId(resultSet.getInt("id"));tel.setName(resultSet.getString("name"));tel.setBid(resultSet.getInt("bid"));}}catch (Exception e){e.printStackTrace();}finally {JDBCUtil.close(resultSet,preparedStatement,connection);}return tel;
}

Telservice 添加新方法

Tel findById(Integer id);

TelServiceImpl 实现该方法

public Tel findById(Integer id) {return telDao.findById(id);
}

Telservlet

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String method = request.getParameter("method");
if ("findAll".equals(method)){findAll(request,response);
}else if ("tosave".equals(method)){tosave(request,response);
}else if ("saveTel".equals(method)){saveTel(request,response);
}else if ("toUpdate".equals(method)){toUpdate(request,response);
}}
private void toUpdate(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String id = request.getParameter("id");Tel byId = telService.findById(Integer.parseInt(id));//品牌的回显List<Tbrand> tbrands = tbrandService.findAll();//存入作用域request.setAttribute("byId",byId);request.setAttribute("tbrands",tbrands);request.getRequestDispatcher("/t_update.jsp").forward(request,response);}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);  //千万不要忘记}

t_update.jsp 页面

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head><title>更新</title>
</head>
<body>
<form action="<%=request.getContextPath()%>/tel?method=updateTel" method="post"><input type="hidden" name="id" value="${requestScope.byId.id}"><br>名称:<input type="text" name="name" value="${requestScope.byId.name}"><br>品牌:<select name="bid"><c:forEach items="${requestScope.tbrands}" var="tbs"><option value="${tbs.id}"<!--根据id来判断--><c:if test="${tbs.id==requestScope.byId.bid}">selected</c:if>>${tbs.dname}</option></c:forEach></select><input type="submit" value="提交">
</form>
</body>
</html>

2. 更新功能

TelDao

void updateTel(Tel tel);

TelDaoImpl

public void updateTel(Tel tel) {Connection connection=null;PreparedStatement preparedStatement=null;String sql="update t_tel set name=?, bid=? where id=?";try {connection = JDBCUtil.getConnection();preparedStatement = connection.prepareStatement(sql);preparedStatement.setString(1,tel.getName());preparedStatement.setInt(2,tel.getBid());preparedStatement.setInt(3,tel.getId());preparedStatement.executeUpdate();}catch (Exception e){e.printStackTrace();}finally {JDBCUtil.close(null,preparedStatement,connection);}
}

TelService

void updateTel(Tel tel);

TelServiceImpl

public void updateTel(Tel tel) {telDao.updateTel(tel);
}

Telservlet

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String method = request.getParameter("method");
if ("toUpdate".equals(method)){toUpdate(request,response);
}else if ("updateTel".equals(method)){updateTel(request,response);
}}private void updateTel(HttpServletRequest request, HttpServletResponse response) throws IOException {String id = request.getParameter("id");String name = request.getParameter("name");String bid = request.getParameter("bid");Tel tel = new Tel();tel.setId(Integer.parseInt(id));tel.setName(name);tel.setBid(Integer.parseInt(bid));telService.updateTel(tel);response.sendRedirect(request.getContextPath()+"/tel?method=findAll");}protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request,response);  //千万不要忘记}

jsp+servlet手机管理(增删改查 二)相关推荐

  1. MVC、JSP实现mysql的增删改查功能的封装和简陋的界面交互

    1.眼见为实 (1)欢迎界面,总索引:带下划线的三个都是链接 : (2)搜索界面:--有颜色的为链接 (3).点击上面图片中的修改链接之后就会弹出下面的修改界面: (4).修改用户信息的界面 (5). ...

  2. OA项目实战学习(3)——实现岗位管理增删改查

    我们这里注重实现功能,对页面不进行布局. 一.分析增删改查的功能: 添加.修改.删除成功后 要重定向到列表功能,这样在刷新页面时才不会出现"又做一次增.删.改"的操作. 列表与删除 ...

  3. python+django+sqlite3,不成熟的学生管理增删改查

    因为是边学边做的,所以有一些地方有了很麻烦的方法,登录验证也没做完,前端也很难看,只是做了基本的增删改查 1.新建project django-admin.py startproject studen ...

  4. PHP----练习-----新闻管理----增删改查

    练习-----新闻管理 题目要求如下: 做法: [1]建数据库 [2]封装类文件--------DBDA.class.php 1 <?php 2 class DBDA 3 { 4 public ...

  5. 使用JDB操作数据库—增删改查(二)

    一.使用jdbc操作数据库步骤: 注意:这里操作的是MySQL数据库! 1.创建Java项目,导入jdbc的jar包[ 具体操作步骤 ] 2.创建包(package): 右击项目的src文件夹,选中N ...

  6. mybatis3单表增删改查(二)——注解方式

    2019独角兽企业重金招聘Python工程师标准>>> 代码如下: 1.mybatis配置文件 <mappers><mapper class="org.z ...

  7. kibana客户端工具操作ElasticSearch(增删改查二)

    #不指定id情况下 ElasticSearch自动生成id PUT /lib/user/ {"first_name":"Douglas","last_ ...

  8. xmind角色管理增删改查测试用例编写

  9. 基于JSP的数据库增删改查实现

    基于JSP的数据库增删改查实现 一.JAVA包的设计 包 类 方法 entity PM25 Set,get dao BaseDao getConnection,close PM25Dao findAl ...

最新文章

  1. Arcface demo
  2. Java 10:将流收集到不可修改的集合中
  3. Laravel Query Builder 复杂查询案例:子查询实现分区查询 partition by
  4. cpu 散热测试软件,游匣G15丨全方位跑分评测报告
  5. 谷歌地图TMS地图服务地址收集,测试可用
  6. 悼念毛星云(浅墨)老师
  7. 进销存管理系统源码VS2015
  8. 拼音加加 4.0 正式版发布了
  9. 利用科学计算机转换角度,角度换算计算器(角度换算弧度计算器)
  10. 对于程序员头发的认识
  11. 富媒体超级短信(多媒体短信、视频短信)亮点、应用场景
  12. 物联网的新危机!即将到期的SSL证书可能会影响……
  13. 遭遇XP-664129A8.EXE
  14. SQL in 模糊查询的问题
  15. mindspore 1.3.0版本GPU环境下源码编译前的准备工作——依赖环境的安装
  16. RK3399平台开发系列讲解(IIO子系统)4.43、IIO数据的获取方式介绍
  17. 解决gpedit问题
  18. Surf和SIFT特征对比总结
  19. cas登录成功什么意思_单点登录系统和CAS的简介
  20. jemeter压测中所遇报错-connect

热门文章

  1. API has been disabled by blogger currently
  2. c语言memmove头文件,memmove函数
  3. 第一章 国产MCU雅特力AT32 特有功能 资料介绍
  4. Mastering the JSFL:what is JS
  5. 数字游戏一个类A有一个成员变量v有一个初值100. 定义一个类对A类的成员变量v进行猜。如果大了则提示大了小了则提示小了。等于则提示猜测成功(利用Math类的random方法获取随机数)
  6. Sphinx 生成 Windows 帮助文件 (.chm文件)
  7. OOM问题排查及原因解析
  8. word2003 文件出错打不开怎么办
  9. 【Selenium】Selenium4 Grid
  10. java语言 写一算法求其叶子数目_数据结构(Java)在线作业1. 设n为哈夫曼树的叶子结点数目,则该哈夫曼树共有( )个结点。A. n+1B. 2n-1...