jdbc查询数据库中数据
接着上一篇在数据库中添加数据
介绍通过JDBC查询数据,主要通过Resultset对象来加载查询结果集。
ResultSet对象是JDBC API中封装的结果集对象,从数据表中查询数据均放置在这个集合中
创建WEB项目,通过JDBC查询图书信息表中的图书信息并且显示在JSP中
1)创建名为“ Book”的类,用于封装图书信息:
package com.xhd.bean; /** * * @author Administrator * */ public class Book { private int id; private String name; private double price; private int bookCount; private String author; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public int getBookCount() { return bookCount; } public void setBookCount(int bookCount) { this.bookCount = bookCount; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } }
2)创建名为"FirstServlet"的Servlet对象,用于查询所有图书信息。
在其中编写doGet()方法建立数据库连接。
并将查询的数据集合放置到HttpServlet对象中,将请求转发到JSP页面
package com.xhd.bean; import java.io.IOException; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * 查询图书信息的Servlet对象 * @author * */ public class FindServlet extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { // 加载数据库驱动,注册到驱动管理器 Class.forName("com.mysql.jdbc.Driver"); // 数据库连接字符串 String url = "jdbc:mysql://localhost:3306/db_database11"; // 数据库用户名 String username = "root"; // 数据库密码 String password = "111"; // 创建Connection连接 Connection conn = DriverManager.getConnection(url,username,password); // 获取Statement Statement stmt = conn.createStatement(); // 添加图书信息的SQL语句 String sql = "select * from tb_book"; // 执行查询 ResultSet rs = stmt.executeQuery(sql); // 实例化List对象 List<Book> list = new ArrayList<Book>(); // 判断光标向后移动,并判断是否有效 while(rs.next()){ // 实例化Book对象 Book book = new Book(); // 对id属性赋值 book.setId(rs.getInt("id")); // 对name属性赋值 book.setName(rs.getString("name")); // 对price属性赋值 book.setPrice(rs.getDouble("price")); // 对bookCount属性赋值 book.setBookCount(rs.getInt("bookCount")); // 对author属性赋值 book.setAuthor(rs.getString("author")); // 将图书对象添加到集合中 list.add(book); } // 将图书集合放置到request之中 request.setAttribute("list", list); rs.close(); // 关闭ResultSet stmt.close(); // 关闭Statement conn.close(); // 关闭Connection } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } // 请求转发到book_list.jsp request.getRequestDispatcher("book_list.jsp").forward(request, response); } }由于查询图书信息的SQL语句中并不需要参数信息,使用statement对象执行查询。
在doGet()方法中首先获取数据库的连接Connection,
然后通过Statement对象执行查询图书信息的select语句,并获取resultset结果集
最后遍历resultset中的数据来封装图书对象Book,将其添加到list集合中,转发jsp页面显示
获取Resultset对象后,即可通过移动光标定位到查询结果中的指定行,然后通过resultset对象提供的一系列getXXX()方法来获取当前行的数据。
3)创建book_list.jsp页面,显示图书信息
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <%@page import="java.util.List"%> <%@page import="com.xhd.bean.Book"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>所有图书信息</title> <style type="text/css"> td{font-size: 12px;} h2{margin: 0px} </style> </head> <body> <table align="center" width="450" border="1" height="180" bordercolor="white" bgcolor="black" cellpadding="1" cellspacing="1"> <tr bgcolor="white"> <td align="center" colspan="5"> <h2>所有图书信息</h2> </td> </tr> <tr align="center" bgcolor="#e1ffc1" > <td><b>ID</b></td> <td><b>图书名称</b></td> <td><b>价格</b></td> <td><b>数量</b></td> <td><b>作者</b></td> </tr> <% // 获取图书信息集合 List<Book> list = (List<Book>)request.getAttribute("list"); // 判断集合是否有效 if(list == null || list.size() < 1){ out.print("没有数据!"); }else{ // 遍历图书集合中的数据 for(Book book : list){ %> <tr align="center" bgcolor="white"> <td><%=book.getId()%></td> <td><%=book.getName()%></td> <td><%=book.getPrice()%></td> <td><%=book.getBookCount()%></td> <td><%=book.getAuthor()%></td> </tr> <% } } %> </table> </body> </html>
4)创建index.jsp页面作为主页
<%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB18030"> <title>查看所有图书</title> </head> <body> <a href="FindServlet">查看所有图书</a> </body> </html>
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: JDBC java对MySQL数据库进行查询操作,并把查询的结果输出
- 下一篇: 原始jdbc模板