效果:
代码结构:
数据库存储结构创建:
代码:
DELIMITER
C
R
E
A
T
E
P
R
O
C
E
D
U
R
E
f
i
n
d
A
l
l
B
o
o
k
1
(
)
B
E
G
I
N
S
E
L
E
C
T
∗
F
R
O
M
t
b
b
o
o
k
s
o
r
d
e
r
b
y
i
d
;
E
N
D
CREATE PROCEDURE findAllBook1() BEGIN SELECT * FROM tb_books order by id; END
CREATEPROCEDUREfindAllBook1()BEGINSELECT∗FROMtbbooksorderbyid;END
DELIMITER;
上面的是升序,如下需要按照id降序,只需要改成
DELIMITER
C
R
E
A
T
E
P
R
O
C
E
D
U
R
E
f
i
n
d
A
l
l
B
o
o
k
1
(
)
B
E
G
I
N
S
E
L
E
C
T
∗
F
R
O
M
t
b
b
o
o
k
s
o
r
d
e
r
b
y
i
d
d
e
s
c
;
E
N
D
CREATE PROCEDURE findAllBook1() BEGIN SELECT * FROM tb_books order by id desc; END
CREATEPROCEDUREfindAllBook1()BEGINSELECT∗FROMtbbooksorderbyiddesc;END
DELIMITER;
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">
<%@page import="java.util.List"%>
<%@page import="com.lyq.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>
<jsp:useBean id="findBook" class="com.lyq.bean.FindBook"></jsp:useBean>
<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 = findBook.findAll();
// 判断集合是否有效
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>
Book.java
package com.lyq.bean;
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;
}
}
Char.java
package com.lyq.bean;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
/**
* Servlet Filter implementation class Char
*/
@WebFilter("/*")
public class Char implements Filter {
public Char() {
}
public void destroy() {
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");
chain.doFilter(request, response);
}
public void init(FilterConfig fConfig) throws ServletException {
}
}
FindBook.java
package com.lyq.bean;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
public class FindBook{
public Connection getConnection() {
Connection conn=null;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/db_database10?useSSL=false&serverTimezone=UTC";
String username="root";
String password="gunxueqiu";
conn=DriverManager.getConnection(url,username,password);
}catch(ClassNotFoundException e) {
e.printStackTrace();
}catch(SQLException e) {
e.printStackTrace();
}
return conn;
}
public List<Book> findAll(){
List<Book>list=new ArrayList<Book>();
Connection conn=getConnection();
try {
CallableStatement cs=conn.prepareCall("{call findAllBook1()}");
ResultSet rs = cs.executeQuery();
System.out.println("sssssssssssss:"+(rs == null));
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"));
System.out.println("ssssssss");
// 将图书对象添加到集合中
list.add(book);
}
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
// 返回list
return list;
}
}
别忘了加连接器: