jsp中使用Servlet查詢SQLSERVER資料庫中的表的資訊,并且列印在螢幕上
1、JavaBean的使用
package com.zheng;
public class BookBean {
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;
}
}
Servlet的編寫(連接配接資料庫并且查詢)
package com.zheng;
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.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Servlet實作類FindServlet
*/
@WebServlet("/FindServlet") //配置Servlet
public class FindServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public FindServlet() {
super();
}
/**
* 執行POST請求的方法
*/
protected void doPostt(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
/**
* 執行GET請求的方法
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); // 加載資料庫驅動,注冊到驅動管理器
String url = "jdbc:sqlserver://localhost:1433;databaseName=test";// 資料庫連接配接字元串
String username = "zheng"; // 資料庫使用者名
String password = "123"; // 資料庫密碼
// 建立Connection連接配接
Connection conn = DriverManager.getConnection(url,username,password);
Statement stmt = conn.createStatement(); // 擷取Statement
String sql = "select * from tb_book2"; // 添加圖書資訊的SQL語句
ResultSet rs = stmt.executeQuery(sql); // 執行查詢
List<BookBean> list = new ArrayList<>(); // 執行個體化List對象
while(rs.next()){ // 光标向後移動,并判斷是否有效
BookBean book = new BookBean(); // 執行個體化Book對象
book.setId(rs.getInt("id")); // 對id屬性指派
book.setName(rs.getString("name")); // 對name屬性指派
book.setPrice(rs.getDouble("price")); // 對price屬性指派
book.setBookCount(rs.getInt("bookCount")); // 對bookCount屬性指派
book.setAuthor(rs.getString("author")); // 對author屬性指派
list.add(book); // 将圖書對象添加到集合中
}
request.setAttribute("list", list); // 将圖書集合放置到request中
rs.close(); // 關閉ResultSet
stmt.close(); // 關閉Statement
conn.close(); // 關閉Connection
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
// 請求轉發到bookList.jsp
request.getRequestDispatcher("bookList.jsp").forward(request, response);
}
}
輸出資料庫中表的資訊
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.util.*"%>
<%@ page import="com.zheng.BookBean"%>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>顯示圖書清單</title>
<style type="text/css">
td,th {
padding: 5px;
}
</style>
</head>
<body>
<div width="98%" align="center">
<h2>所有圖書資訊</h2>
</div>
<table width="98%" border="0" align="center" cellpadding="0"
cellspacing="1" bgcolor="#666666">
<tr>
<th bgcolor="#FFFFFF">編号</th>
<th bgcolor="#FFFFFF">圖書名稱</th>
<th bgcolor="#FFFFFF">價格</th>
<th bgcolor="#FFFFFF">數量</th>
<th bgcolor="#FFFFFF">作者</th>
</tr>
<%
// 擷取圖書資訊集合
List<BookBean> list = (List<BookBean>) request.getAttribute("list");
// 判斷集合是否有效
if (list == null || list.size() < 1) {
out.print("<tr><td bgcolor='#FFFFFF' colspan='5'>沒有任何圖書資訊!</td></tr>");
} else {
// 周遊圖書集合中的資料
for (BookBean book : list) {
%>
<tr align="center">
<td bgcolor="#FFFFFF" ><%=book.getId()%></td>
<td bgcolor="#FFFFFF"><%=book.getName()%></td>
<td bgcolor="#FFFFFF"><%=book.getPrice()%></td>
<td bgcolor="#FFFFFF"><%=book.getBookCount()%></td>
<td bgcolor="#FFFFFF"><%=book.getAuthor()%></td>
</tr>
<%
}
}
%>
</table>
</body>
</html>
超連結跳轉
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>首頁</title>
</head>
<body>
<a href="FindServlet">檢視圖書清單</a>
</body>
</html>