这次同样运用之前写过的部分代码进行改变,实现一个删除功能,这个功能很好添加,表单中只要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连接数据库实现删除功能的更多相关文章

  1. 纯Java JDBC连接数据库,且用JDBC实现增删改查的功能

    Java JDBC连接数据库 package cn.cqvie.yjq; import java.sql.*; /** * 注册数据库的驱动程序,并得到数据库的连接对象 * @author yu * ...

  2. JDBC连接数据库经验技巧(转)

    Java数据库连接(JDBC)由一组用 Java 编程语言编写的类和接口组成.JDBC 为工具/数据库开发人员提供了一个标准的 API,使他们能够用纯Java API 来编写数据库应用程序.然而各个开 ...

  3. 转 JDBC连接数据库(二)——连接池

    https://www.cnblogs.com/xiaotiaosi/p/6398371.html 数据库保持长连接,不过一直都是idle,除非有用户激活连接,这样后果是无法删除用户,但是不影响数据库 ...

  4. JDBC连接数据库

    JDBC连接数据库 1.加载JDBC驱动程序. Class.forName("com.mysql.jdbc.Driver"); 建立连接,. Connection conn = D ...

  5. 使用JNDI或JDBC连接数据库

    一. JNDI 1. tomcat环境 找到X:\xxx\......\apache-tomcat-6.0.39\conf\server.xml,在<Host>节点中配置如下: <H ...

  6. jdbc连接数据库,中文出现乱码的问题

    一.使用jdbc连接数据库,插入数据库时,数据里的数据显示乱码,为 " ??? " 两种解决方案: 1.修改服务端的mysql配置文件,编辑my.cnf文件,在[mysqld]下添 ...

  7. tomcat中配置servlet.xml的JNDI或JDBC连接数据库【原】

    tomcat中配置servlet.xml的JNDI或JDBC连接数据库 一. JNDI 1. tomcat环境 找到X:\xxx\......\apache-tomcat-6.0.39\conf\se ...

  8. 利用JDBC连接数据库(MySQL)

    1 在eclipse中创建一个maven项目(在Java模式下,不要在JavaEE模式下) 1.1 file  -->> new  -->> project 2 下载数据库驱动 ...

  9. shiro 通过jdbc连接数据库

    本文介绍shiro通过jdbc连接数据库,连接池采用阿里巴巴的druid的连接池 参考文档:https://www.w3cschool.cn/shiro/xgj31if4.html https://w ...

随机推荐

  1. 嵌套的Try-Catch块--------异常处理(3)

    当有一个Try块没有一个对应的异常可处理,则其父类的异常处理机制去处理.如果父类的异常处理机制不能处理,则java run-time system将会抛出一个异常. 例子: class Nest{ p ...

  2. POJ 2396 Budget 有上下界的网络流

    POJ 2396  Budget 题意简述:给定矩阵(每个元素都是非负整数)各行各列的和,并且限制其中的某些元素,给出一个可行解,特殊评测.矩阵规模小于200*20. 网络流的模型是显而易见的,不过对 ...

  3. 架构师之路——里氏替换原则LSP

    定义: 如果对每一个对类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1都代换成o2时,程序P的行为没有发生变化,那么类型S是类型T的子类型. 内容: 里氏替换原则通 ...

  4. 最近发现的.net core中的一些bugs

    1.使用.net core的过程中发现TypeInfo.GetCustomAttributes()只能写在主线程中,否则如果该自定义特性存在于nuget中就会报错,貌似nuget中的dll仅在主线程使 ...

  5. 浅谈java的String字符串

    一提到java的String首先想到的应该就是它的不可变性,其原因是因为String类的内部是使用一个private final char value[]的字符数组来存储数据,本身没有相应的set方法 ...

  6. 文件系统:ext4,zfs测评结果

    测试环境 操作系统:ubuntu16.04 内核版本: 磁盘: 本人使用的是青云的云主机,磁盘使用的其性能型: Cpu信息: 4核 2399MHz 内存:8G 文件系统: 本人使用的是ubuntu16 ...

  7. vue组件最佳实践

    看了老外的一篇关于组件开发的建议(强烈建议阅读英文原版),感觉不错翻译一下加深理解. 这篇文章制定一个统一的规则来开发你的vue程序,以至于达到一下目的. 1.让开发者和开发团队更容易发现一些事情. ...

  8. Swift应用案例 1.无限轮播

      从今天开始,我学习的重点开始转向Swift,并且会分享一些自己学习的心得体会,今天给大家带来的的是无限轮播.广告页的无限轮播是非常常见的一个功能,大多数APP都有,大多数程序员也都实现过,今天我们 ...

  9. C++设计模式:Template Method

    我使用过一个简单的后台服务框架.这个框架上手很容易,我只需要继承一个基类,同时实现,或重写(override)基类声明的几个接口(这些接口声明为虚函数,或者纯虚函数),然后调用基类定义好的run()函 ...

  10. 妙用 `package.json` 快速 `import` 文件(夹)

    前言 import router from './router'; import router from '../../router'; import router from './../../../ ...