<% // 连接数据库 String url = "jdbc:mysql://localhost:3306/votedb?serverTimezone=UTC&characterEncoding=UTF-8"; String username = "root"; String password = "123456"; Connection conn = null; try { Class.forName("com.mysql.cj.jdbc.Driver"); conn = DriverManager.getConnection(url, username, password); // 查询所有投票的详细信息 Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM vote"); while (rs.next()) { int id = rs.getInt("id"); String title = rs.getString("title"); int num = rs.getInt("num"); // 在页面上展示每个人投票的详细信息 out.println("<h2>id:" + id + "</h2>"); out.println("name:" + title + "<br>"); out.println("number:" + num + "<br>"); } rs.close(); stmt.close(); } catch (Exception e) { e.printStackTrace(); } finally { if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } %>
时间: 2024-02-14 15:18:46 浏览: 56
这段代码是一个 JSP 页面,在页面中使用 Java 代码连接数据库,查询投票的详细信息,并将这些信息展示在页面上。代码使用 JDBC 连接 MySQL 数据库,首先定义了数据库连接的 URL、用户名和密码,然后使用 Class.forName() 方法加载 MySQL 驱动程序,并通过 DriverManager.getConnection() 方法获取数据库连接对象。接着,使用 conn.createStatement() 方法创建 Statement 对象,通过执行 SQL 查询语句 "SELECT * FROM vote" 获取 ResultSet 对象,并通过 while 循环遍历 ResultSet 中的数据。在循环中,使用 rs.getInt() 和 rs.getString() 方法获取投票的 id、title 和 num 值,并使用 out.println() 方法将这些值输出到页面上。最后,关闭 ResultSet、Statement 和 Connection 对象,释放资源。
相关问题
<% //连接数据库 String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/votedb?serverTimezone=UTC&characterEncoding=UTF-8"; String username = "root"; String password = "123456"; Connection conn = null; Statement stmt = null; ResultSet rs = null; try { Class.forName(driver); conn = DriverManager.getConnection(url, username, password); stmt = conn.createStatement(); rs = stmt.executeQuery("SELECT * FROM vote"); while(rs.next()){ String title = rs.getString("title"); %> <input type="radio" name="option" value="<%=title%>"><%=title%><br> <% } } catch (Exception 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(); } } %> <a href="showVote.jsp">提交投票</a>选中后数据库数据变化
根据您的代码,您想要实现的功能是:在页面上展示投票选项列表(从数据库中查询出来),用户在选中一个选项后,点击“提交投票”按钮,将投票结果存储到数据库中。
您想要实现的选中后数据库数据变化,可能是指将用户的投票结果存储到数据库中。在提交投票的页面中,您可以编写一个表单,其中包含一个隐藏的投票ID字段和一个单选框选项,用户选中后提交表单。后台代码根据投票ID和选中的选项,将投票结果存储到数据库中。
这里提供一个简单的代码示例:
1. 提交投票页面(submitVote.jsp):
```html
<form action="voteHandler.jsp" method="post">
<% // 根据你的数据库结构修改以下代码
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/votedb?serverTimezone=UTC&characterEncoding=UTF-8";
String username = "root";
String password = "123456";
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, username, password);
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM vote");
while(rs.next()){
int id = rs.getInt("id");
String title = rs.getString("title");
%>
<input type="radio" name="option" value="<%=id%>"><%=title%><br>
<% }
} catch (Exception 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();
}
}
%>
<input type="hidden" name="voteId" value="<%=voteId%>">
<input type="submit" value="提交投票">
</form>
```
2. 处理投票请求(voteHandler.jsp):
```java
<% // 获取用户选择的选项和投票ID
String option = request.getParameter("option");
String voteId = request.getParameter("voteId");
// 根据你的数据库结构修改以下代码
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/votedb?serverTimezone=UTC&characterEncoding=UTF-8";
String username = "root";
String password = "123456";
Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, username, password);
pstmt = conn.prepareStatement("INSERT INTO vote_result(vote_id, option_id) VALUES (?, ?)");
pstmt.setInt(1, Integer.parseInt(voteId));
pstmt.setInt(2, Integer.parseInt(option));
pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
finally {
//关闭连接
try {
if (pstmt != null) {
pstmt.close();
}
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
response.sendRedirect("voteResult.jsp?voteId=" + voteId); // 投票成功后跳转到投票结果页面
%>
```
3. 投票结果页面(voteResult.jsp):
```html
<% // 获取投票ID并查询投票选项和结果
String voteId = request.getParameter("voteId");
// 根据你的数据库结构修改以下代码
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/votedb?serverTimezone=UTC&characterEncoding=UTF-8";
String username = "root";
String password = "123456";
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, username, password);
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT v.title, o.title AS option_title, COUNT(*) AS vote_count FROM vote v LEFT JOIN vote_option o ON v.id = o.vote_id LEFT JOIN vote_result r ON o.id = r.option_id WHERE v.id = " + voteId + " GROUP BY o.id");
while(rs.next()){
String title = rs.getString("title");
String optionTitle = rs.getString("option_title");
int voteCount = rs.getInt("vote_count");
%>
<p><%=optionTitle %>: <%=voteCount %> 票</p>
<%
}
} catch (Exception 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();
}
}
%>
```
希望这个示例能够帮助您完成您的需求。
className="com.mysql.jdbc.Driver"; url="jdbc:mysql://localhost:3306/votedb"; username = "root"; password = "123456";怎么修改
这段代码可以根据你想要连接的 MySQL 数据库的地址、端口、数据库名、用户名和密码进行修改。例如,如果你想连接的数据库名为 mydatabase,用户名为 myuser,密码为 mypassword,那么代码可以修改为:
```
className = "com.mysql.jdbc.Driver";
url = "jdbc:mysql://localhost:3306/mydatabase";
username = "myuser";
password = "mypassword";
```
请注意,上述代码中的 localhost:3306 是 MySQL 数据库的默认端口号和地址,如果你连接的是远程数据库或者使用了非默认的端口号,那么需要修改为相应的地址和端口号。
阅读全文