java用查询数据库表并显示到网页上
时间: 2024-03-09 10:44:11 浏览: 199
好的,这里提供一个简单的 Java Servlet 代码示例,可以连接到数据库,查询表中的数据并将其显示到网页上。在这个示例中,我们使用了 MySQL 数据库和 JSP 技术。
首先,我们需要创建一个 JDBC 工具类,用于连接到数据库并执行操作。这里我们使用了 PreparedStatement 对象,可以防止 SQL 注入攻击。
```java
import java.sql.*;
public class JdbcUtil {
private static final String URL = "jdbc:mysql://localhost:3306/mydatabase?useUnicode=true&characterEncoding=utf8";
private static final String USER = "root";
private static final String PASSWORD = "password";
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(URL, USER, PASSWORD);
}
public static void close(Connection conn, Statement stmt, ResultSet rs) {
try {
if (rs != null) rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (stmt != null) stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public static PreparedStatement prepareStatement(Connection conn, String sql, Object... params) throws SQLException {
PreparedStatement pstmt = conn.prepareStatement(sql);
for (int i = 0; i < params.length; i++) {
pstmt.setObject(i + 1, params[i]);
}
return pstmt;
}
}
```
然后,我们编写一个 Servlet,用于处理 HTTP 请求并显示数据。在 `doGet()` 方法中,我们连接到数据库,查询表中的数据,将其转换为 HTML 表格的形式并输出到响应中。
```java
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
try {
// 连接到 MySQL 数据库
Connection conn = JdbcUtil.getConnection();
// 创建 PreparedStatement 对象
PreparedStatement pstmt = JdbcUtil.prepareStatement(conn, "SELECT * FROM mytable");
// 执行查询语句
ResultSet rs = pstmt.executeQuery();
// 将查询结果转换为 HTML 表格
StringBuilder sb = new StringBuilder();
sb.append("<html><head><title>My Page</title></head><body><table border='1'><tr><th>id</th><th>name</th><th>age</th></tr>");
while (rs.next()) {
sb.append("<tr><td>").append(rs.getInt("id")).append("</td><td>").append(rs.getString("name")).append("</td><td>").append(rs.getInt("age")).append("</td></tr>");
}
sb.append("</table></body></html>");
// 将结果输出到响应中
response.setContentType("text/html;charset=utf-8");
response.getWriter().write(sb.toString());
// 关闭连接
JdbcUtil.close(conn, pstmt, rs);
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
```
最后,我们需要创建一个 JSP 页面,用于向用户展示数据。在这个页面中,我们可以使用 `<jsp:include>` 标签来引入 Servlet 的输出结果。例如:
```html
<html>
<head>
<title>My Page</title>
</head>
<body>
<h1>My Page</h1>
<jsp:include page="/myservlet"/>
</body>
</html>
```
在这个例子中,`/myservlet` 是我们创建的 Servlet 的 URL 映射。当用户请求这个 URL 时,Servlet 将查询数据库并将结果输出到响应中,然后 JSP 页面将其包含在页面中进行展示。
阅读全文