JDBC操作数据库之修改数据

使用JDBC修改数据库中的数据,起操作方法是和添加数据差不多的,只不过在修改数据的时候还要用到UPDATE语句来实现的,例如:把图书信息id为1的图书数量改为100,其sql语句是:update book set bookCount=100 where id=1。在实际开发过程中,通常会由程序传递SQL语句中的参数,所以修改数据也通常使用PreparedStatement对象进行操作。

实例代码:

(1)index.jsp

1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4 <title>修改数据</title>
5 </head>
6 <body>
7     <a href="FindServlet">修改数据</a>
8 </body>
9 </html>

查看代码

(2)book_list.jsp代码

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ page import="com.book.Book" %>
 4 <%@ page import="java.util.ArrayList" %>
 5 <%@ page import="java.util.List" %>
 6 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 7 <html>
 8 <head>
 9 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
10 <title>修改图书信息</title>
11 <style>
12     td{
13         font-size:12px;
14     }
15     h2{
16         margin:2px;
17     }
18 </style>
19 <script type="text/javascript">
20     function check(form){
21         with(form){
22             if(bookCount.value == ""){
23                 alert("请输入更新数量!");
24                 return false;
25             }
26             if(isNaN(bookCount.value)){
27                 alert("格式错误!");
28                 return false;
29             }
30             return true;
31         }
32     }
33 </script>
34 </head>
35 <body>
36     <div style="text-align:center;">
37         <table align="center" width="500px" border="1" height="170px" bordercolor="white" bgcolor="black" cellpadding="1">
38             <tr bgcolor="white">
39                 <td align="center" colspan="6">
40                     <h2>所有图书信息 </h2>
41                 </td>
42             </tr>
43             <tr align="center" bgcolor="#e1ffc1">
44                 <td><b>ID</b></td>
45                 <td><b>图书名称</b></td>
46                 <td><b>价格</b></td>
47                 <td><b>作者</b></td>
48                 <td><b>修改数量</b></td>
49             </tr>
50             <%
51                 List<Book> list = (List<Book>)request.getAttribute("list");
52                 if(list ==null || list.size() < 1){
53                     out.print("数据为空");
54                 }else{
55                     for(Book book:list){
56
57
58
59             %>
60             <tr align="center" bgcolor="white">
61                 <td><%= book.getId() %></td>
62                 <td><%= book.getName() %></td>
63                 <td><%= book.getPrice() %></td>
64                 <td><%= book.getBookCount() %></td>
65                 <td><%= book.getAuthor() %></td>
66                 <td>
67                     <form action="UpdateServlet" method="post" onsubmit="return check(this);">
68                         <input type="hidden" name="id" value="<%= book.getId() %>" >
69                         <input type="text" name="bookCount" size="3">
70                         <input type="submit" value="修    改">
71                     </form>
72                 </td>
73             </tr>
74             <%
75                     }
76                 }
77             %>
78          </table>
79     </div>
80 </body>
81 </html>

查看代码

(3)Book类对象

 1 package com.book;
 2
 3 public class Book {
 4     private int id;
 5     private String name;
 6     private double price;
 7     private int bookCount;
 8     private String author;
 9     public int getId() {
10         return id;
11     }
12     public void setId(int id) {
13         this.id = id;
14     }
15     public String getName() {
16         return name;
17     }
18     public void setName(String name) {
19         this.name = name;
20     }
21     public double getPrice() {
22         return price;
23     }
24     public void setPrice(double price) {
25         this.price = price;
26     }
27     public int getBookCount() {
28         return bookCount;
29     }
30     public void setBookCount(int bookCount) {
31         this.bookCount = bookCount;
32     }
33     public String getAuthor() {
34         return author;
35     }
36     public void setAuthor(String author) {
37         this.author = author;
38     }
39
40 }

查看代码

(4)DBConnection.java

 1 package com.db;
 2
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.SQLException;
 6
 7 public class DBConnection {
 8     private String url = "jdbc:mysql://localhost:3306/test";
 9     private String driver = "com.mysql.jdbc.DriverManager";
10     private String username = "root";
11     private String password = "123456";
12     Connection conn = null;
13     public Connection getConn() {
14         try {
15
16             Class.forName(driver);
17
18             conn = DriverManager.getConnection(url,username,password);
19
20         }catch(ClassNotFoundException e1) {
21             e1.printStackTrace();
22         }catch (SQLException e) {
23             // TODO Auto-generated catch block
24             e.printStackTrace();
25         }
26         return conn;
27     }
28
29 }

查看代码

(5)FindServlet.java

 1 package com.db;
 2
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.SQLException;
 6
 7 public class DBConnection {
 8     private String url = "jdbc:mysql://localhost:3306/test";
 9     private String driver = "com.mysql.jdbc.DriverManager";
10     private String username = "root";
11     private String password = "123456";
12     Connection conn = null;
13     public Connection getConn() {
14         try {
15
16             Class.forName(driver);
17
18             conn = DriverManager.getConnection(url,username,password);
19
20         }catch(ClassNotFoundException e1) {
21             e1.printStackTrace();
22         }catch (SQLException e) {
23             // TODO Auto-generated catch block
24             e.printStackTrace();
25         }
26         return conn;
27     }
28
29 }

查看代码

(6)UpdateServlet.java

 1 package com.servlet;
 2
 3 import java.io.IOException;
 4 import java.sql.Connection;
 5 import java.sql.DriverManager;
 6 import java.sql.PreparedStatement;
 7
 8 import javax.servlet.ServletException;
 9 import javax.servlet.http.HttpServlet;
10 import javax.servlet.http.HttpServletRequest;
11 import javax.servlet.http.HttpServletResponse;
12
13 public class UpdateServlet extends HttpServlet {
14
15     private static final long serialVersionUID = 1L;
16     protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
17         int id = Integer.valueOf(request.getParameter("id"));
18         int bookCount = Integer.valueOf(request.getParameter("bookCount"));
19         try {
20             Class.forName("com.mysql.jdbc.Driver");
21             String url = "jdbc:mysql://localhost:3306/test";
22             String username = "root";
23             String password = "123456";
24             String sql = "update book set bookCount=? where id=?";
25             Connection conn = DriverManager.getConnection(url,username,password);
26             PreparedStatement ps = conn.prepareStatement(sql);
27             ps.setInt(1, bookCount);
28             ps.setInt(2, id);
29             ps.executeUpdate();
30             ps.close();
31             conn.close();
32         }catch(Exception e) {
33             e.printStackTrace();
34         }
35
36         //重定向到FindServlet
37         response.sendRedirect("FindServlet");
38     }
39
40 }

查看代码

程序运行结果:

index.jsp页面

book_list.jsp页面

时间: 2024-08-05 09:29:17

JDBC操作数据库之修改数据的相关文章

JDBC操作数据库之查询数据

以数据库中查找图书信息,并将信息显示在jsp页面当中为例,下面贴上代码片段: (1)在index.jsp页面代码body中只要添加如下一段代码: <a href="FindServlet">查看所有图书</a> (2)FindServlet.java类代码 1 package com.lyq.bean; 2 import java.io.IOException; 3 import java.sql.Connection; 4 import java.sql.Dr

几种通过JDBC操作数据库的方法,以及返回数据的处理

1.SQL TO String :只返回一个查询结果 例如查询某条记录的总数 rs = stmt.executeQuery(replacedCommand);             if (rs != null && rs.next()) // rs only contains one row and one column             {                    String tempStr = rs.getString(1);                 

JDBC操作数据库的学习(2)

在上一篇博客<JDBC操作数据库的学习(1)>中通过对例1,我们已经学习了一个Java应用如何在程序中通过JDBC操作数据库的步骤流程,当然我们也说过这样的例子是无法在实际开发中使用的,本篇就在简单开发中如何对上一篇的例子进行“升级”,满足简单开发中对数据库的增删改查(CRUD). 如果按照上一篇中的例子,那么我们在做增删改查的话将会出现每个方法都要获取连接,释放资源,代码会出现很大的重复性,因此我们应该将每个增删改查每个方法中可以复用的代码抽取出来,同时为了能切换数据库方便,也该将一些配置信

jdbc操作数据库语句

非常有用的jdbc操作数据库语句,记录下来,以方便以后的查询. public class PersonDao { // 增加操作 public void insert(Person person) throws Exception; // 修改操作 public void update(Person person) throws Exception; // 删除操作 public void delete(String id) throws Exception ; // 按ID查询操作 publi

JDBC操作数据库的学习(1)

单单对数据库的操作,比如说MySQL,我们可以在命令行窗口中执行,但是一般是应用程序要操作数据库,因此我们应该在程序中的代码上体现对数据库的操作,那么使用程序应用如何操作数据库呢?那就要使用到数据库的连接驱动,应用程序通过这些驱动来操作数据库: 但是这里就又有一个问题了,不同的数据库有各自的驱动程序,而一个应用程序要操作不同的数据库,那么就要懂得要使用的数据库的驱动如何操作,这样就增加了学习成本.好在我们使用Java开发应用,而Java中只需要使用JDBC就能操作所有的数据库,因为JDBC提供的

JDBC操作数据库之连接数据库

通过JDBC向数据库中添加数据的时候,使用insert语句实现数据的插入,再SQL语句中的参数可以用占位符"?"来替代,然后通过PreparedStatement对象或者Statement对象对其赋值并执行SQL. 下面分别对PreparedStatement接口和Statement接口插入数据方法做代码实现:其中PreparedStatementTest类中是用PreparedStatement接口中的方法来实现数据库数据插入的:StatementTest类中是用Statement接

Spark Streaming通过JDBC操作数据库

本文记录了学习使用Spark Streaming通过JDBC操作数据库的过程,源数据从Kafka中读取. Kafka从0.10版本提供了一种新的消费者API,和0.8不同,因此Spark Streaming也提供了两种API与之对应,其中spark-streaming-kafka-0-8支持Kafka 0.8.2.1以后的Broker:spark-streaming-kafka-0-10支持0.10.0以上Broker,处于实验阶段.两者的对比如下表所示. |spark-streaming-ka

JDBC操作数据库的三种方式比较

JDBC(java Database Connectivity)java数据库连接,是一种用于执行上sql语句的javaAPI,可以为多种关系型数据库提供统一访问接口.我们项目中经常用到的MySQL.oracle.DB2等关系型数据库均是通过JDBC来访问的,现在主流的ORM框架Hibernate.Mybatis等均是在JDBC的基础上做的进一步封装.优化.一般小型的项目,可以直接用JDBC来访问数据库,简单方便.我在进过几个项目后,总结了三总JDBC的基本用法,对这几种用法做一个总结. 第一种

JDBC操作数据库的详细步骤

JDBC操作数据库的步骤: 1.注册驱动 告知JVM使用的是哪一个数据库的驱动 2.获得连接 使用JDBC中的类,完成对MySQL数据库的连接 3.获得语句执行平台 通过连接对象获取对SQL语句的执行者对象 4.执行sql语句 使用执行者对象,向数据库执行SQL语句 获取到数据库的执行后的结果 5.处理结果 6.释放资源  一堆close() 1.注册驱动,发射技术,将驱动加入到内容 使用java.sql.DriverManager类静态方法 registerDriver(Driver driv