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.DriverManager;
 5 import java.sql.ResultSet;
 6 import java.sql.SQLException;
 7 import java.sql.Statement;
 8 import java.util.ArrayList;
 9 import java.util.List;
10 import javax.servlet.ServletException;
11 import javax.servlet.http.HttpServlet;
12 import javax.servlet.http.HttpServletRequest;
13 import javax.servlet.http.HttpServletResponse;
14 public class FindServlet extends HttpServlet {
15     private static final long serialVersionUID = 1L;
16
17     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
18         try {
19             // 加载数据库驱动,注册到驱动管理器
20             Class.forName("com.mysql.jdbc.Driver");
21             // 数据库连接字符串
22             String url = "jdbc:mysql://localhost:3306/db_database10";
23             // 数据库用户名
24             String username = "root";
25             // 数据库密码
26             String password = "111";
27             // 创建Connection连接
28             Connection conn = DriverManager.getConnection(url,username,password);
29             // 获取Statement
30             Statement stmt = conn.createStatement();
31             // 添加图书信息的SQL语句
32             String sql = "select * from tb_books";
33             // 执行查询
34             ResultSet rs = stmt.executeQuery(sql);
35             // 实例化List对象
36             List<Book> list = new ArrayList<Book>();
37             // 判断光标向后移动,并判断是否有效
38             while(rs.next()){
39                 // 实例化Book对象
40                 Book book = new Book();
41                 // 对id属性赋值
42                 book.setId(rs.getInt("id"));
43                 // 对name属性赋值
44                 book.setName(rs.getString("name"));
45                 // 对price属性赋值
46                 book.setPrice(rs.getDouble("price"));
47                 // 对bookCount属性赋值
48                 book.setBookCount(rs.getInt("bookCount"));
49                 // 对author属性赋值
50                 book.setAuthor(rs.getString("author"));
51                 // 将图书对象添加到集合中
52                 list.add(book);
53             }
54             // 将图书集合放置到request之中
55             request.setAttribute("list", list);
56             rs.close();        // 关闭ResultSet
57             stmt.close();    // 关闭Statement
58             conn.close();    // 关闭Connection
59         } catch (ClassNotFoundException e) {
60             e.printStackTrace();
61         } catch (SQLException e) {
62             e.printStackTrace();
63         }
64         // 请求转发到book_list.jsp        request.getRequestDispatcher("book_list.jsp").forward(request, response);
65     }
66 }

(3)图书信息展示页面book_list.jsp代码

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <%@ page import="java.util.List" %>
 4 <%@ page import="com.java.Book" %>
 5 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 6 <html>
 7 <head>
 8 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 9 <title>查看所有图书</title>
10 <style type="text/css">
11     h2{
12         margin:0px;
13     }
14     div,td{
15         font-size:12px;
16     }
17 </style>
18 </head>
19 <body>
20     <div style="text-align:center;">
21         <table width="45px" border="1px" height="180px">
22             <tr bgcolor="white">
23                 <td colspan="4">
24                     <h2>所有图书信息</h2>
25                 </td>
26             </tr>
27             <tr bgcolor="#e1ffc1">
28                 <td><b>图书名称</b></td>
29                 <td><b>图书价格</b></td>
30                 <td><b>图书数量</b></td>
31                 <td><b>图书作者</b></td>
32             </tr>
33             <%
34           //获取图书信息集合
35             List<Book> list = (List<Book>)request.getAttribute("list");
36             //判断集合是否有效
37             if(list == null || list.size() < 1){
38                 out.print("没有数据");
39             }else{
40                 //遍历图书集合中的数据
41                 for(Book book:list){
42             %>
43             <tr bgcolor="white">
44                 <td><%= book.getName() %></td>
45                 <td><%= book.getPrice() %></td>
46                 <td><%= book.getBookcout() %></td>
47                 <td><%= book.getAuthor() %></td>
48             </tr>
49             <%
50                 }
51             }
52             %>
53         </table>
54     </div>
55 </body>
56 </html>

(4)最后web.xml中Servlet的配置信息为:

1 <servlet>
2       <servlet-name>FindServlet</servlet-name>
3       <servlet-class>com.java.FindServlet</servlet-class>
4   </servlet>
5   <servlet-mapping>
6       <servlet-name>FindServlet</servlet-name>
7       <url-pattern>/FindServlet</url-pattern>
8   </servlet-mapping>
时间: 2024-07-31 19:46:40

JDBC操作数据库之查询数据的相关文章

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

使用JDBC从数据库中查询数据

* ResultSet 结果集:封装了使用JDBC 进行查询的结果 * 1. 调用Statement 对象的 executeQuery(sql) 方法可以得到结果集 * 2. ResultSet 返回的实际上就是一张数据表,有一个指针指向数据表的第一行的前面, * 可以调用next()方法检测下一行是否有效,若有效,返回true,且指针下移, * 相当于iterator 对象的 hasNext() 和 next()方法的结合体 * 3. 当指针定位到一行时,可以通过调用getXxx(index)

几种通过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提供的

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