假设有一个“图书管理”数据库,数据库中“图书信息”表的结构为(书号,书名,作者,出版社,版次,出版时间,类别,定价)。在JSP中写代码,查询近三年内出版的图书的信息,并在页面的table中显示。写出相应的代码
时间: 2023-06-12 21:02:28 浏览: 153
数据库的定义sql.doc
好的,我会根据你的要求为你展示查询近三年内出版的图书的信息并在页面的table中显示的JSP代码:
```
<%@page import="java.sql.*"%>
<html>
<body>
<h1>图书信息</h1>
<table border="1">
<tr>
<th>书号</th>
<th>书名</th>
<th>作者</th>
<th>出版社</th>
<th>版次</th>
<th>出版时间</th>
<th>类别</th>
<th>定价</th>
</tr>
<%
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/book_management?useUnicode=true&characterEncoding=utf8&useSSL=false";
String user = "root";
String password = "123456";
conn = DriverManager.getConnection(url, user, password);
stmt = conn.createStatement();
String query = "SELECT * FROM book_info WHERE 出版时间 >= DATE_SUB(CURDATE(), INTERVAL 3 YEAR)";
rs = stmt.executeQuery(query);
while (rs.next()) {
out.print("<tr>");
out.print("<td>" + rs.getString("书号") + "</td>");
out.print("<td>" + rs.getString("书名") + "</td>");
out.print("<td>" + rs.getString("作者") + "</td>");
out.print("<td>" + rs.getString("出版社") + "</td>");
out.print("<td>" + rs.getString("版次") + "</td>");
out.print("<td>" + rs.getString("出版时间") + "</td>");
out.print("<td>" + rs.getString("类别") + "</td>");
out.print("<td>" + rs.getString("定价") + "</td>");
out.print("</tr>");
}
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} finally {
try {
if (rs != null) rs.close();
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
%>
</table>
</body>
</html>
```
代码中,我们首先建立了一个名为`book_management`的数据库,其中包含了一张名为`book_info`的图书信息表。通过JDBC连接数据库,使用SQL语句查询满足条件的图书信息,并在页面的table中显示。由于不知道你使用的是什么数据库,因此上面的代码是连接MySQL数据库的,请作适当修改。
这个程序中用到了`DATE_SUB`函数,它会返回当前日期减去指定天数的结果。我们将当前日期减去3年得到的日期,与数据库中出版时间`出版时间`字段进行比较,从而找到近三年内出版的图书信息。
阅读全文