JDBC操作數據庫之查詢數據
阿新 • • 發佈:2017-09-05
arr 移動 null pattern || tle back pub long
以數據庫中查找圖書信息,並將信息顯示在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 importjava.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 publicclass 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操作數據庫之查詢數據