フォームベースの投票システム--MySql,DAO,VO

3701 ワード

一.システム分析
1つのインタフェースしかありませんが、2つを書くことをお勧めします.1つは投票インタフェースを表示するために、1つはユーザーの投票を受け入れるために、対応する先生の得票を1に追加します.
仕事が終わってから前のインタフェースに戻ります.
各ページと役割:
VoteDao.JAvaはデータベースに接続し、先生の番号、名前、得票を調べ、先生の得票数を修正し、番号に対応する得票数を1加算します.
Vote.JAvaパッケージ先生の番号、名前、得票数
display.jspはVoteDaoを呼び出して先生の番号、名前、得票数を調べて、そして表示します
vote.jspはrequestから送られてきた先生番号の配列を取得し、VoteDaoを呼び出して各番号に対応する得票数に1を加え、displayに戻る.jsp 
二.データベースの初期化
属性:teacherno teachername votenumber
mySQLでスクリプトとして実行し、sourceコマンドを使用します.
use test;
create table t_vote(
 teacherno varchar(20),
 teachername varchar(20),
 vote int );
insert into t_vote values('1', 'lishengjing',1);
insert into t_vote values('2', 'huangwenjun',1);
insert into t_vote values('3', 'zhaosy',2);
insert into t_vote values('4', 'chaoshehn',3);

三.JAvaコード
MySQLのドライバをweb-inf/libにコピーするにはbar.jpgはWebRootの下のimgディレクトリにコピーされます.パッケージをインポートするときはimport javaを使用することが望ましい.sql*;
public class VoteDao {
	private Connection  conn=null;
	
	public void initConnection() throws Exception{
		Class.forName("com.mysql.jdbc.Driver");
		String url ="jdbc:mysql://localhost:3306/test";
		conn = DriverManager.getConnection(url , "root","root");
		
	}
	
	public ArrayList getAllVotes()throws Exception{
		ArrayList all = new ArrayList ();
		initConnection();
		String sql = "select * from t_vote";
		Statement stat= conn.createStatement();
		ResultSet rs = stat.executeQuery(sql);
		
		while (rs.next()){
			Vote vote = new Vote();
			vote.setTeacherno(rs.getString("teacherno"));
			vote.setTeachername(rs.getString("teachername"));
			vote.setVotenumber(rs.getInt("vote"));
			all.add(vote);
		}
		clossConnection();
		return all;
		
	}
	
	public void updateVotes(String [] teacherno )throws Exception{
		initConnection();
		String sql = "update t_vote set vote=vote+1 where teacherno=?";
		PreparedStatement ps = conn.prepareStatement(sql);
		
		for (int i =0;i<teacherno.length;i++){
			ps.setString(1, teacherno[i]);
			ps.executeUpdate();
		}
		clossConnection();
	}
	
	public void clossConnection ()throws Exception{
		conn.close();
	}
}

四.JSPコード部
display.jsp
<body>
    <form action ="vote.jsp"  method ="post">
		<table align="center">
			<caption>
				    <input type="submit" value="  ">
			</caption>
			<tr bgcolor="yellow">
				<td>  </td>
				<td>  </td>
				<td>   </td>
			</tr>

			<%
				VoteDao vdao= new VoteDao();
			    ArrayList votes = vdao.getAllVotes();
			    for (int i=0;i<votes.size();i++){
			    Vote vote =(Vote) votes.get(i);
			%>
			<tr bgcolor="pink">
				<td><%=vote.getTeacherno()%></td>
				<td><%=vote.getTeachername()%></td>
				<td><img src ="img/bar.jpg"  width="<%=vote.getVotenumber() %>"  height ="10"/>
				<%=vote.getVotenumber() %></td>
				<td><input name="teacherno" type="checkbox"
					value="<%=vote.getTeacherno()%>"></td>
			</tr>
			<%
				}
			%>

		</table>
	</form>
  </body>

vote,jsp
 <body>
    <% 
    String [] teacherno = request.getParameterValues("teacherno") ;
    VoteDao vdao = new VoteDao();
    vdao.updateVotes(teacherno);
    %>
    <jsp:forward page="display.jsp"></jsp:forward>
  </body>