网球管理系统客户端制作:
重点1:选手报名。
选手报名比赛需要两个条件,一个是选手的ID,另一个是比赛的ID;
选手ID得到方法:在选手通过登录系统时,将选手的用户名放入session中,这样就能的到选手的用户名,然后写一个方法1(),通过数据库查询,得到选手的ID;
方法1()代码如下:
public int getId(String username) {
// TODO Auto-generated method stub
int competitorId = 0;
Connection conn = DBOperator.getConnection();
Statement st = null;
ResultSet rs = null;
String sql = "select id from competitor where username = '"+username+"'";
try {
st = conn.createStatement();
rs = st.executeQuery(sql);
while(rs.next()){
competitorId=rs.getInt("id");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
DBOperator.close(rs, st, conn);
}
return competitorId;
}
得到比赛ID的方法:
参加比赛,肯定是在有比赛信息的界面,进行报名,既然有了比赛信息,直接通过getId();方法得到;
然后讲的到两个参数(选手ID,比赛ID),传给你添加比赛的方法,向数据库中添加数据,选手即可报名成功。
重点2:每一场比赛都有报名人数限制,而我们想要知道与多少选手报名,这就需要,每当有一位选手报名成功,让报名人数加1,这样我们就可以知道有多少选手报名。方法有很多,我就说一下自己的,有需要可以看一下:
代码如下:
public boolean updatePersionNum(int persionNum,int id) {
boolean flag = false;
// TODO Auto-generated method stub
Connection conn = DBOperator.getConnection();
PreparedStatement pst = null;
String sql = "update game set persionNum=? where id =?";
try {
pst = conn.prepareStatement(sql);
pst.setInt(1, persionNum+1);
pst.setInt(2, id);
flag = pst.execute();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
DBOperator.close(pst, conn);
}
return flag;
}
在每有一次选手报名成功后,调用这个方法,报名人数就能自动更新。
重点三:在已报名人报名满之后,如果再有选手报名我们应该提示,报名人数已满。
写一个方法,查看数据库,得到已报名人数和最大报名人数,对它们进行比较判断是否还能够报名。
方法代码如下:
public boolean bijiao(int competitorNum, int persionNum) {
// TODO Auto-generated method stub
boolean flagone = false;
if(persionNum == competitorNum){
flagone = true;
}
return flagone;
}
重点四:
在一名选手报名成功后,如果不小心又点击了一次报名,这时候应该提示选手已报名,不能重复报名。
方法代码如下:
public boolean find(int gameId, int competitorId) {
// TODO Auto-generated method stub
boolean flagtwo = false;
GamePersion gp = new GamePersion();
Connection conn = DBOperator.getConnection();
Statement st = null;
ResultSet rs = null;
String sql = "select * from gamepersion where gameId='"+gameId+"'&&competitorId='"+competitorId+"'";
try {
st = conn.createStatement();
rs = st.executeQuery(sql);
while(rs.next()){
flagtwo = true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
DBOperator.close(rs, st, conn);
}
return flagtwo;
}
这样一个基本的比赛报名系统应该就没有问题了。