JDBC操作数据库之查询数据
Posted java小斌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>
以上是关于JDBC操作数据库之查询数据的主要内容,如果未能解决你的问题,请参考以下文章