フォームベースの投票システム--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コマンドを使用します.
三.JAvaコード
MySQLのドライバをweb-inf/libにコピーするにはbar.jpgはWebRootの下のimgディレクトリにコピーされます.パッケージをインポートするときはimport javaを使用することが望ましい.sql*;
四.JSPコード部
display.jsp
vote,jsp
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>