用java写一个代码,要求可以连接数据库,在网页上可以展示出来,并且可以选择查询的内容,
时间: 2023-06-16 13:05:51 浏览: 66
以下是一个简单的 Java Web 应用程序示例,可以连接数据库,并在网页上显示数据:
1. 首先,创建一个 Java 类来处理数据库连接和查询:
```java
import java.sql.*;
public class DatabaseHandler {
private Connection conn;
public DatabaseHandler() throws SQLException {
String url = "jdbc:mysql://localhost/mydb";
String user = "root";
String password = "password";
conn = DriverManager.getConnection(url, user, password);
}
public ResultSet executeQuery(String query) throws SQLException {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(query);
return rs;
}
}
```
2. 创建一个 Servlet 类,用于处理用户请求并将结果呈现在网页上:
```java
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class QueryServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
try {
DatabaseHandler dbHandler = new DatabaseHandler();
String query = request.getParameter("query");
ResultSet rs = dbHandler.executeQuery(query);
out.println("<html><body>");
out.println("<h2>Query Results:</h2>");
out.println("<table border=\"1\">");
ResultSetMetaData rsmd = rs.getMetaData();
int numColumns = rsmd.getColumnCount();
out.println("<tr>");
for (int i = 1; i <= numColumns; i++) {
out.println("<th>" + rsmd.getColumnName(i) + "</th>");
}
out.println("</tr>");
while (rs.next()) {
out.println("<tr>");
for (int i = 1; i <= numColumns; i++) {
out.println("<td>" + rs.getString(i) + "</td>");
}
out.println("</tr>");
}
out.println("</table>");
out.println("</body></html>");
} catch (SQLException e) {
out.println("Error: " + e.getMessage());
}
}
}
```
3. 创建一个 JSP 页面,用于显示查询表单和结果:
```jsp
<html>
<head>
<title>Database Query</title>
</head>
<body>
<h1>Database Query</h1>
<form method="get" action="QueryServlet">
<p>
<label>Enter a query:</label><br>
<textarea name="query" rows="5" cols="50"></textarea>
</p>
<p>
<input type="submit" value="Submit">
</p>
</form>
<hr>
<%-- Display query results --%>
<%
String query = request.getParameter("query");
if (query != null) {
out.println("<h2>Query Results:</h2>");
RequestDispatcher rd = request.getRequestDispatcher("/QueryServlet");
rd.include(request, response);
}
%>
</body>
</html>
```
4. 配置 web.xml 文件,将 Servlet 映射到 URL:
```xml
<web-app>
<servlet>
<servlet-name>QueryServlet</servlet-name>
<servlet-class>QueryServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>QueryServlet</servlet-name>
<url-pattern>/QueryServlet</url-pattern>
</servlet-mapping>
</web-app>
```
5. 部署应用程序并启动服务器。现在,您可以在浏览器中打开应用程序 URL,并输入 SQL 查询,然后单击“提交”按钮以显示结果。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)