基于表单的投票系统--MySql ,DAO ,VO_MySQL
一。系统分析
只要一个界面 ,但是建议写两个,一个用于显示投票界面 ,一个用于接受用户的投票,将所对应的老师得票加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" style="max-width:90%"基于表单的投票系统--MySql ,DAO ,VO_MySQL" >" 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>

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Artikel ini membincangkan menggunakan pernyataan jadual Alter MySQL untuk mengubah suai jadual, termasuk menambah/menjatuhkan lajur, menamakan semula jadual/lajur, dan menukar jenis data lajur.

Artikel membincangkan mengkonfigurasi penyulitan SSL/TLS untuk MySQL, termasuk penjanaan sijil dan pengesahan. Isu utama menggunakan implikasi keselamatan sijil yang ditandatangani sendiri. [Kira-kira aksara: 159]

Artikel membincangkan strategi untuk mengendalikan dataset besar di MySQL, termasuk pembahagian, sharding, pengindeksan, dan pengoptimuman pertanyaan.

Artikel membincangkan alat MySQL GUI yang popular seperti MySQL Workbench dan PHPMyAdmin, membandingkan ciri dan kesesuaian mereka untuk pemula dan pengguna maju. [159 aksara]

Artikel ini membincangkan jadual menjatuhkan di MySQL menggunakan pernyataan Jadual Drop, menekankan langkah berjaga -jaga dan risiko. Ia menyoroti bahawa tindakan itu tidak dapat dipulihkan tanpa sandaran, memperincikan kaedah pemulihan dan bahaya persekitaran pengeluaran yang berpotensi.

Artikel membincangkan menggunakan kunci asing untuk mewakili hubungan dalam pangkalan data, memberi tumpuan kepada amalan terbaik, integriti data, dan perangkap umum untuk dielakkan.

Artikel ini membincangkan membuat indeks pada lajur JSON dalam pelbagai pangkalan data seperti PostgreSQL, MySQL, dan MongoDB untuk meningkatkan prestasi pertanyaan. Ia menerangkan sintaks dan faedah mengindeks laluan JSON tertentu, dan menyenaraikan sistem pangkalan data yang disokong.

Artikel membincangkan mendapatkan MySQL terhadap suntikan SQL dan serangan kekerasan menggunakan pernyataan yang disediakan, pengesahan input, dan dasar kata laluan yang kuat. (159 aksara)
