JDBC连接数据库实现删除功能
这次同样运用之前写过的部分代码进行改变,实现一个删除功能,这个功能很好添加,表单中只要form一个参数到DeleteServlet中,所以重点的代码还是在DeleteServlet中实现业务逻辑。
我们运用到的SQL语句是.
String sql = "delete from tb_book where id=?";
所以需要表单form的时候要传进一个id值。然后我们根据id值来进行删除该id的数据
1
首先我们先看看本次的工程
FindServlet和Book我们之前有已经有了,可以copy过来不用修改任何代码
index.jsp也不用做出任何修改。
2
我们重点看看一个book_list.jsp和deleteServlet中的代码
book_list.jsp
引入相关的包
同样需要一个script来验证输入合法性。
之后再table中添加行列 (有多少行上就有多少个<tr></tr>组合,有多少列就有多少个<td></td>组合)
通过for循环遍历集合中的数据,并且每一列取出数据的同时,都响应添加一个超链接到
<a href="DeleteServlet?id=<%=book.getId()%>">删除</a>
从book实例中取得的getId()值,存入id中,传递到DeleteServlet中。
2
值得注意的是
// 获取图书id
int id = Integer.valueOf(request.getParameter("id"));括号中的id是从表单中传过来的,是一个String型需要转型
和
String sql = "delete from tb_book where id=?";
和
ps.setInt(1, id);
修改第一个语句中的第一个参数,这里的修改其实就是执行删除操作了。
(PS:这里再次强调一下为什么使用
// 获取PreparedStatement
PreparedStatement ps = conn.prepareStatement(sql);
PreparedStatement的对象,是执行有参数的sql语句进行预处理。知道这个就够了,我百度的时候忙忙的多资料,懒得去理解了。
)
最后
执行一下DOS模式下的Mysql看一下没有修改前的数据。
然后运行工程,我点击的是删除第一个
再次跳转到本页面(删除后的新页面) 可以看到第一条数据被删除了。
蛋疼的我再次打开DOS再次验证一下,果真就真被删除了
总结:
我记得自学JSP是从3月24号那天晚上哥哥告诉我什么叫MVC开始的,当时听着真心抽象,然后现在是4月5号,过了差不过11天了。从数据库不知道为何物,连接JDBC的为何。到慢慢摸索,写出一个测试数据库连接成果的代码。
期间发生了很多蛋疼又傻比的事情,
1
比方说,不懂安装Mysql(TNND,我还以为安装了mysql会有一个类似魔兽这样的页面会显示在桌面,擦,其实是没有的);
2
再比方说,安装JDBC还要下载那个什么驱动包,下载了又不知道丢哪里,又得去看了许多百度的资料;
3
再比方说,到了后面才发现,Mysql原来TNND是有一个可视化的操作插件之类的,不用在那个恶心的DOS下看。
4
再后来又发现,原来前几天自学的数据库语句,在JDBC连接的时候仅仅是用到了select这个简单的句子(当然往后可能要用到存储过程)
5
在具体工程的时候,那个跳转页面的url被我自己乱改过,害我调试了半天,都调试不出来。后来才发现是我蛋疼手贱改了web.xml.不过通过我乱改web.xml,也细心观察了一下Servlet添加的时候里面相对应的出现的代码。
6
学会了html的表单,一些常用的html语言,table表之类的运用。当然少补了javascript语句在JSP页面的作用和规范。还有<% 添加java代码%>
7
对于MVC的理解更加深入了,随着javaBean的学习,也学会了Eclipse原来有自动生成set get方法的快捷操作。(本来不知道之前我是一点点敲的
)
对于MVC 我现在可以用自己的话来解释一下了。
V就是UI,就是表单可以理解为html
M就是javaBean(也成为useBean)
C自然就是Servlet了。
8
平常新建java的类或者Servlet都是默认全部丢到默认包中的,也就是说,平常我都不设包名的。现在发现还是起一些包名好一些,这样不至于那么乱。比方说,useBean和Servelt都是后缀为.java,如果在设置工程包名的时候不设置的话,会经常性点错。那如果工程大一点之后就可能是不便于维护了。
可以很清楚的理解了javaBean可以说是V和C之间的桥梁。而JSP自学的过程,最最最核心的非Servlet莫属了。尤其是数据库操作的时候。可以说JSP的学习就是Servlet的学习。
JDBC连接数据库实现删除功能的更多相关文章
- 纯Java JDBC连接数据库,且用JDBC实现增删改查的功能
Java JDBC连接数据库 package cn.cqvie.yjq; import java.sql.*; /** * 注册数据库的驱动程序,并得到数据库的连接对象 * @author yu * ...
- JDBC连接数据库经验技巧(转)
Java数据库连接(JDBC)由一组用 Java 编程语言编写的类和接口组成.JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API 来编写数据库应用程序.然而各个开 ...
- 转 JDBC连接数据库(二)——连接池
https://www.cnblogs.com/xiaotiaosi/p/6398371.html 数据库保持长连接,不过一直都是idle,除非有用户激活连接,这样后果是无法删除用户,但是不影响数据库 ...
- JDBC连接数据库
JDBC连接数据库 1.加载JDBC驱动程序. Class.forName("com.mysql.jdbc.Driver"); 建立连接,. Connection conn = D ...
- 使用JNDI或JDBC连接数据库
一. JNDI 1. tomcat环境 找到X:\xxx\......\apache-tomcat-6.0.39\conf\server.xml,在<Host>节点中配置如下: <H ...
- jdbc连接数据库,中文出现乱码的问题
一.使用jdbc连接数据库,插入数据库时,数据里的数据显示乱码,为 " ??? " 两种解决方案: 1.修改服务端的mysql配置文件,编辑my.cnf文件,在[mysqld]下添 ...
- tomcat中配置servlet.xml的JNDI或JDBC连接数据库【原】
tomcat中配置servlet.xml的JNDI或JDBC连接数据库 一. JNDI 1. tomcat环境 找到X:\xxx\......\apache-tomcat-6.0.39\conf\se ...
- 利用JDBC连接数据库(MySQL)
1 在eclipse中创建一个maven项目(在Java模式下,不要在JavaEE模式下) 1.1 file -->> new -->> project 2 下载数据库驱动 ...
- shiro 通过jdbc连接数据库
本文介绍shiro通过jdbc连接数据库,连接池采用阿里巴巴的druid的连接池 参考文档:https://www.w3cschool.cn/shiro/xgj31if4.html https://w ...
随机推荐
- Wpf中鼠标样式的修改,作用点修改
最近,在做一个控件的鼠标样式,Ps加了插件,可以编辑生成.cur格式的图标. 可是,所有的改完以后,调试运行,结果发现自己制作的图标的作用点总是在左上角,而不是在"手形"图标的食指 ...
- php小测试,难点与分享
B/S(网页程序) 网页结构,依托游览器 C/S(客户端程序) 单引号和双引号包含字符串的区别: 双引号里面可以解析变量,比如: $a=555; echo "你好{$a}"; 输出 ...
- Javascript面对对象. 第四篇
原型模式创建对象也有自己的缺点,它省略看构造函数传参初始化这一过程,带来的缺点就是初始化的值都是一致的. 而原型最大的缺点就是它优点,那就是共享. 原型中所有属性是被很多实例共享的,共享对于函数非常合 ...
- 2017 CVTE春招内推专场 C/C++软件开发岗笔试编程题
先来一波吐槽:选择题全是不定项选择,考的内容在我看来,"反正我接受唔到咯". 比如: 1.Windows操作系统某个通信机制(具体题目忘了,反正答案我选了个熟悉的名词"消 ...
- 使用EntityFramework中DbSet.Set(Type entityType)方法碰到的问题
使用的是EntityFramework, Version=6.0.0.0,项目原本直接使用将EntityFramework的Entity拿到UI使用,后面想使用dto对象将数据库的Entity与前台分 ...
- asp.net EF+MVC+Bootstrap 通用后台管理系统
需要源码,请加QQ:858-048-581 开发环境: VS2012或以上 数据库: SQL Server 2008R2或以上 基于EF+MVC+Bootstrap构建通用后台管理系统,集成轻量级 ...
- jiayuan
8.2=http://files.cnblogs.com/files/bqh10086/jiayuan8.2pack.zip
- RHL 6.0学习日记, 先记下来,以后整理。
今天又遇到哪些问题呢? 1.配置网络的问题,我把网络配置文件胡乱改了,然后就上不了网了 因为一直都没怎么用到网络,网线都不怎么连接的,今天只是突然想ping一下,于是就Ping 了一下,一开始ping ...
- Lambda&Java多核编程-5-函数式接口与function包
从前面的总结中我们知道Lambda的使用场景是实现一个函数式接口,那么本篇就将阐述一下何为函数式接口以及Java的function包中提供的几种函数原型. 函数式接口 早期也叫作SAM(Single ...
- Bug记载1之webpack本地安装
当我安装前端打包工具webpack时,cmd命令出现了这么一句关键性的提示: npm ERR ! Refusing to install package as a dendency of itself ...