这次给大家带来一个课堂基础作业,简单的javaweb投票系统。
当然也设计了添加投票人的接口,只是list页面没有直接导航过去。
如页面显示,可以增加和减少相应的票数。同时id是利用数据库该字段作为主键自增的。 name 和头像都是上传的,由mysql数据库存储照片名然后再自动寻找到。票数是直接由user_votes存储使用,
接下来带来关键代码。
//这是类User_list
package com.example.user_votes;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Driver;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
@WebServlet("/list")
public class User_list extends HelloServlet{
@Override
protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//连接数据库,获取所有的用户信息
//创建一个用户对象
List<User> userlist = new ArrayList<User>();
try {
// 1.加载驱动程序
// DriverManager.registerDriver(new com.mysql.cj.jdbc.Driver());
Class.forName("com.mysql.cj.jdbc.Driver");
// 2.创建数据库连接
String url = "jdbc:mysql://localhost:3306/java_test?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";
String jdbcuser = "root";
String jdbcpwd = "500400";
Connection conn = DriverManager.getConnection(url, jdbcuser, jdbcpwd);
// 3.创建语句对象
Statement stmt = conn.createStatement();
// 4.执行sql
// 被注释的代码是插入数据
String sql ="SELECT * from user_votes";
//动态操作
ResultSet rows = stmt.executeQuery(sql);
// 5.处理结果 rows.next() 用于遍历rows对象集
while(rows.next()){
User user = new User();
user.setId(rows.getInt("id"));
user.setName(rows.getString("user_name"));
user.setUrl(rows.getString("url"));
user.setVotes(Integer.parseInt(rows.getString("votes")));
userlist.add(user);
}
// 6.关闭语句对象,数据库连接rows.close()关闭row对象集
rows.close();
stmt.clearBatch();
conn.close();
} catch (Exception e) {