1、增加数据就是在jsp中添加数据,通过servlet的java代码对数据库进行添加数据(之前的写的DVD为例):

jsp添加:

<form action="servlet/Add" method="post" ><table><tr><td align="center" colspan="2"><h2>添加图书信息</h2><br></td></tr><tr><td align="right">ID:</td><td><input type="text" name="id"></td></tr><tr><td align="right">DVD名称:</td><td><input type="text" name="name"></td></tr><tr><td align="right">状态:</td><td><input type="text" name="state"></td></tr><tr><td align="right">日期:</td><td><input type="text" name="date"></td></tr><tr><td align="right">次数:</td><td><input type="text" name="count"></td></tr></table><div class="w"><input type="submit" value="提交" > <input type="reset" value="清除" ><input type="button" value="退出" οnclick="window.location.href='/dvd/index.jsp'"></div>

  是使用form表单,进行数据添加的提交,method="post"是在提交的数据再post的方法中(还有get方法,相比post的方法较好一下),reset是页面输入的数据清空,退出就是返回登录页面;

java代码:

                request. setCharacterEncoding("UTF-8"); //是为了避免中文乱码String id=request.getParameter("id");String name=request.getParameter("name");/*String state=request.getParameter("state");String date=request.getParameter("date");String count=request.getParameter("count");*/Connection con = Connect.get();try {PreparedStatement ps=con.prepareStatement("insert into dvd1(id,name) value('"+id+"','"+name+"')");ps.executeUpdate();ps.close();con.close();} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}response.sendRedirect("/dvd/servlet/Check");

  request.getParameter()是获取jsp中的name值对应的页面输入值,把后面的三个属性注释了,是因为在mysql中给他们设了默认值,这的添加只需要给mysql中添加名称和编号就可以了。注意:response.sendRedirect()是重置,括号里放的是相对地址,是跳转到servlet,而这里的servlet地址是查看Web.xml中对应的地址,在这个地址之前加当前的工程名称。(这里有个数据类型转换问题:mysql语句中不识别java的数据类型,mysql中只识别mysql语句有没有带引号(单引号获取双引号),也就是说,java的中不管是什么数据类型的数据传到数据库中,只要数据库中字段是varchar类型才需要添加引号,其他的数据类型不要(有可能有的需要,可能是我不知道)添加引号。)

2、删除数据:就是先用servlet从数据库中获取数据,然后用jsp在页面上显示之后,才能从已显示的数据中,删除不要的数据,然后在刷新数据库中剩下的数据:

在上个博客中有显示数据库的数据到页面的上的过程,在页面中显示的有删除的按钮:

<input type="button" value="删除" οnclick="delete1()">

 这里还需要用js代码,对选择的按钮进行触发事件,

<script src="http://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
function delete1(){if($('input[type=checkbox]:checked').length<1){alert("请选择要删除的信息");}else{var ids='';$('input[type=checkbox]:checked').each(function(index,element){ids+=$(element).val()+',';});window.location.href='servlet/Delete?ids='+ids;}  }
</script>

 当没有按钮被选择的时候,而触发了删除事件,则会提示 "请选择要删除的信息"  这里也可以进行多条数据的删除,用字符串进行拼接在一个,传送到删除的servlet中,而ids就是字符串的拼接的结果,需要传输到删除的servlet中; 

servlet代码:

                request. setCharacterEncoding("UTF-8");String ids=request.getParameter("ids");String[] str=ids.split(",");Connection con = Connect.get();//连接数据库try {Statement st = con.createStatement();for(String id:str){st.executeUpdate("delete from dvd1 where id="+id);}st.close();con.close();} catch (SQLException e) {e.printStackTrace();}response.sendRedirect("/dvd/servlet/Check");

  删除的servlet接收ids字符串,进行切割,放到str的字符串数组中,用增强for循环,把str的id都变量出来,分别放到mysql的删除语句中,进行一一删除,最后response.sendRedirect()重置,调用数据库的数据的方法(Check方法上个博客中有),就是刷新数据了(注意:一开始就调用servlet的,就是使用默认的get方法,只有指定的post方法,才能使用post方法);

3、修改数据:先把数据库中数据打印到页面上(都在Check可以完成了),选择一条数据点击触发修改事件,进入修改servlet中get方法,获取选中的一条数据,放到修改的jsp进行修改,修改完之后,在修改jsp中提交给修改的servlet的post方法;

<input type="button" value="修改" οnclick="change()">

  

<script src="http://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">function change(){if($('input[type=checkbox]:checked').length!=1){alert("请选择一条信息");}else{window.location.href='servlet/Change?id='+$('input[type=checkbox]:checked').val();}}
</script>

  这里和删除基本上没有区别,只是选择的数据条数,只有一条,

servlet的get方法代码

                request. setCharacterEncoding("UTF-8");String id=request.getParameter("id");Connection con = Connect.get();try {Statement st = con.createStatement();ResultSet rs = st.executeQuery("select * from dvd1 where id="+id);ResultSetMetaData rm = rs.getMetaData();List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();while (rs.next()) {Map<String, Object> m = new HashMap<String, Object>();for (int i = 1; i <= rm.getColumnCount(); i++) {m.put(rm.getColumnName(i), rs.getObject(i));}list.add(m);}rs.close();st.close();con.close();request.setAttribute("lists", list);request.getRequestDispatcher("/change.jsp").forward(request,response);//转发} catch (SQLException e) {e.printStackTrace();}

  这里request.setAttribute("lists", list)中list就是上面ArrayList中的数据,lists是把list的数据传输到jsp中的变量,而下面的转发就是要转发到的jsp中,这的id就是check.jsp中的选中的id,然后用id的值,重新从数据库,获取id完整的数据,在这完整的数据发送到修改的jsp中;

修改的jsp

<form action="servlet/Change" method="post" ><%request.setCharacterEncoding("utf-8");@SuppressWarnings("unchecked")List<Map<String, Object>> list = (List<Map<String, Object>>) request.getAttribute("lists");if (list == null || list.size() == 0) {out.print("数据库中没有数据");} else {%><table><tr><td align="center" colspan="2"><h2>修改信息</h2><br></td></tr><tr><td align="right">ID:</td><td><input type="text" name="id" value="<%=list.get(0).get("id") %>" readonly="readonly"></td></tr><tr><td align="right">DVD名称:</td><td><input type="text" name="name" value="<%=list.get(0).get("name") %>"></td></tr><tr><td align="right">状态:</td><td><input type="text" name="state" value="<%=list.get(0).get("state1") %>"></td></tr><tr><td align="right">日期:</td><td><input type="text" name="date" value="<%=list.get(0).get("date1") %>"></td></tr><tr><td align="right">次数:</td><td><input type="text" name="count" value="<%=list.get(0).get("count1") %>"></td></tr><%} %></table><div class="w"><input type="submit" value="提交" > <input type="reset" value="清除" ><input type="button" value="退出" οnclick="window.location.href='/dvd/index.jsp'"></div>
</form>

equest.getAttribute("lists"),就是获取,修改servlet中get方法的ArrayList的数据,list.get(0).get("id"),用get(0),因为lists中就一条数据,之前只选中了一条数据,get("")中有数据的,就是数据库中的字段名称,把之前的数据修改之后,提交到修改的servlet的post方法中,
request. setCharacterEncoding("UTF-8"); String id=request.getParameter("id");String name=request.getParameter("name");String date=request.getParameter("date");String state=request.getParameter("state");String count=request.getParameter("count");Connection con = Connect.get();try {PreparedStatement ps=con.prepareStatement("update dvd1 set name='"+name+"',state1="+state+",date1="+date+",
count1="+count+" where id="+id);ps.executeUpdate();ps.close();con.close();} catch (SQLException e) {e.printStackTrace();}response.sendRedirect("/dvd/servlet/Check");

  

这的数据修改和数据添加已经没有什么区别了,要是之前看懂了,到这里已经可以看懂了。

有什么问题,可以留言,我们可以讨论讨论。

转载于:https://www.cnblogs.com/zxd6937/p/5998136.html

servlet对mysql数据库的数据增删改相关推荐

  1. jaba窗体连接mysql增删改查_知识实现——Java使用jdbc连接MySql数据库,实现增删改查...

    Java使用jdbc连接MySql数据库,实现增删改查 首先,导入MySql连接数据库的jar包,我用的是 mysql连接jar包 DB类,用于获得数据库连接 import java.sql.Driv ...

  2. python数据库教程_Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...

  3. python操作数据库教程_Python连接mysql数据库及简单增删改查操作示例代码

    1.安装pymysql 进入cmd,输入 pip install pymysql: 2.数据库建表 在数据库中,建立一个简单的表,如图: 3.简单操作 3.1查询操作 #coding=utf-8 #连 ...

  4. python连接mysql数据库并实现增删改查

    2019独角兽企业重金招聘Python工程师标准>>> 服务器安装mysql sudo apt-get install mysql-sever 开启和停止mysql服务 sudo s ...

  5. web和mysql连接并增删改查_Java Web 使用IDEA对mysql数据库进行简单增删改查操作(附源码下载)...

    一.加载数据库驱动 1.下载jdbc(如已下载可略过此步骤) (1)点击下载网址,选择Connector/J (2)选择Platform Independent版本 (3)下载下图所示的压缩包 2.将 ...

  6. MySQL数据库操作步骤---增删改查

    首先,我们来说mysql数据库用法之前,先来回顾一下文件的操作方法.不要觉得无聊哦,因为萍子在学习的时候,发现文件的操作方法和数据库的操作方法,竟然有些地方是差不多的,这样类比着学习,相对来说会比较容 ...

  7. MySQL数据库基础表格——增删改查(下)

    ♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️树高千尺,落叶归根人生不易,人间真情 目录 MyS ...

  8. mysql 增删修模型_48.Python中ORM模型实现mysql数据库基本的增删改查操作

    首先需要配置settings.py文件中的DATABASES与数据库的连接信息, DATABASES = { 'default': { 'ENGINE': 'django.db.backends.my ...

  9. Django 操作Mysql数据库 对表进行增删改查

    为什么80%的码农都做不了架构师?>>>    首先说明:以下方法都是根据表已有的字段添加数据,若想新增字段,则需在类里面新建静态字段, 可参考Django 操作数据库建表  ,增删 ...

最新文章

  1. npm run build打包失败
  2. Android内存泄漏简介
  3. Codeforces 611D New Year and Ancient Prophecy DP
  4. sprint boot_Sprint Boot子战争包装
  5. web开发——Flask框架
  6. Delphi取UTC时间秒
  7. python时间操作代码
  8. iOS开发网络篇—GET请求和POST请求(转)
  9. php在html中if,html里的if注释怎么使用
  10. scala在线视频学习
  11. w5500telnet协议详解_STM32F103VCT6+W5500 telnet功能实现
  12. linux+硬盘rd5,BackTrack5(BT5)硬盘安装完美教程 亲测可用
  13. 五十一个经典小故事5
  14. java支付宝网页授权_轻松实现支付宝服务窗网页授权从配置到获取授权获取用户信息...
  15. Java生成sitemap网站地图
  16. 新疆计算机系统集成资质年审,新疆涉密信息系统集成资质
  17. 文件 服务器属性,去除服务器文件上的RHS属性
  18. 用Qt从零开始学C++:函数和数据类型
  19. Firebird数据库及工具
  20. winxp搜索网络计算机,WinXP系统上的计算机打开WiFi搜索后无法找到无线网络的问题的解决方法...

热门文章

  1. 伍六七带你学算法——栈的使用
  2. 2022-2028年中国企业核心路由交换机行业市场前瞻与投资分析报告
  3. C++ 笔记(35)— std::to_string 转换整形数字为字符串
  4. tensorflow 学习笔记-- tf.reduce_max、tf.sequence_mask
  5. LeetCode中等题之区域和检索 - 数组可修改
  6. 操作系统学习笔记 第二章:进程管理(王道考研)
  7. 激光雷达Lidar与毫米波雷达Radar:自动驾驶的利弊
  8. 2021年大数据Spark(三十五):SparkStreaming数据抽象 DStream
  9. 2021年大数据Spark(二十八):SparkSQL案例三电影评分数据分析
  10. Bad owner or permissions on xx/.ssh/config