宋鎏鑫:知识竞赛答题系统
3.1用户登录和注册
通过连接数据库,使用sql语句判断用户在登录界面输入的账号与密码是否匹配,从而判定界面是否跳到用户端或管理员端。
登录模块主要功能实现代码如下:
jb1.addActionListener(newActionListener() { //用户与管理员登录判断 publicvoidactionPerformed(ActionEvent e) { User U=newUser(); U.setId(Integer.parseInt(tf1.getText()));// 获取用户登录账号 U.setPassword(new String(tf2.getPassword())); UserDao us = newUserDao(); if (jrb1.isSelected()) { if (us.Denglu(U, 0)) { JOptionPane.showMessageDialog(null, \用户登陆成功\消息提示\
JOptionPane.INFORMATION_MESSAGE);
jf.dispose(); newUser_Xuanxiang(U.getId()); } else { JOptionPane.showMessageDialog(null, \用户登陆失败\消息提示\
JOptionPane.INFORMATION_MESSAGE);
} } if (jrb2.isSelected()) { if (us.Denglu(U, 1)) { JOptionPane.showMessageDialog(null, \管理员登陆成功\消息提示\
JOptionPane.INFORMATION_MESSAGE);
jf.dispose(); newAdmin_Xuanxiang(); } else { JOptionPane.showMessageDialog(null, \管理员登陆失败\消息提示\
JOptionPane.INFORMATION_MESSAGE);
} } } }); jb2.addActionListener(newActionListener() {//跳转用户注册页面 publicvoidactionPerformed(ActionEvent e) { newdenglu_ZhuCe(); } }); jb3.addActionListener(newActionListener() {//退出该系统 publicvoidactionPerformed(ActionEvent e) { jf.dispose(); System.exit(0); } });
}
登录模块主要SQL语句如下:
7
宋鎏鑫:知识竞赛答题系统
(1)管理员登录
select count(*) from admintable where AdminID='\Adminpassword='\
(2)用户登录
select count(*) from usertable where UserID='\Userpassword='\
注:我们通过判断数据库返回值是否为“1”来判断是否登录成功。
注册模块主要功能实现代码如下:
jb1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ User U=new User(); U.setId(Integer.parseInt(tf.getText())); U.setName(tf1.getText()); U.setPassword(new String(tf2.getPassword())); U.setPhonenumber(tf3.getText()); UserDao UD=new UserDao(); AdminDao AD=new AdminDao(); if(!UD.Denglu(U, 2)){
JOptionPane.showMessageDialog(null, \用户注册成功\消息提示\JOptionPane.INFORMATION_MESSAGE);
AD.yonghu(U, 0); jf.dispose(); }else{
JOptionPane.showMessageDialog(null, \该用户ID已注册!!!\消息提示\JOptionPane.INFORMATION_MESSAGE);
} } });
注册模块主要SQL语句如下:
(1)判断ID是否重复
select count(*) from usertable where UserID='\
(2)向数据库中插入用户数据
INSERT INTO usertable (UserID,UserName,UserPassword,PhoneNumber) values (\\
程序登录界面和用户注册界面使用了表格布局简洁美观,如图3.1所示。点击注册用户按钮后即可跳转进图3.2的用户注册界面进行用户注册。 程序登录和注册界面如下:
8
宋鎏鑫:知识竞赛答题系统
图3.1登录界面
图3.2用户注册界面
9
宋鎏鑫:知识竞赛答题系统
3.2用户管理功能
通过用户点击管理员菜单选项中的用户管理选项,进入用户管理界面。在此界面,管理员可以查看用户的信息,删除用户,也可以对忘记密码且通过验证的用户进行密码的修改。
在用户管理界面搭建方面我使用了JLabel标签组件、JButton按钮组件、JPanel面板组件等组件,通过注册按钮事件监听器,实现了对用户操作的监听。
用户管理主要功能实现代码如下:
public class Admin_User { static Vector result; static Vector title ; staticDefaultTableModeldatamodel; Admin_User(){ JFramejf=new JFrame(\用户列表\ JPaneljp=new JPanel(); JButton jb1=new JButton(\修改用户密码\ JButton jb2=new JButton(\删除用户\ JButton jb3=new JButton(\返回\ String[] t = new String[]{\用户ID\用户名\用户密码\手机号\ ////////////表格构建 result = new Vector(); title = new Vector(Arrays.asList(t)); datamodel = new DefaultTableModel(result,title); JTable table = new JTable(datamodel);
JScrollPanescrollTable = new JScrollPane(table); reflushTable(); jp.add(jb1); jp.add(jb2); jp.add(jb3); jf.add(scrollTable); jf.add(jp,BorderLayout.SOUTH); jf.setSize(600,450); jf.setLocationRelativeTo(null); jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE); jf.setVisible(true); jb1.addActionListener(new ActionListener(){////////////////修改用户密码 public void actionPerformed(ActionEvent e){ //获得当前用户选中的记录name int row = table.getSelectedRow(); //获得该条选中的记录的Vector对象 Vector v = (Vector)datamodel.getDataVector().get(row); //TODO:获得这条记录中的第一个字段的值,即用户名 int id = (int)v.get(0); newAdmin_UserPassword(id,1); jf.dispose(); }
10
宋鎏鑫:知识竞赛答题系统
});
jb2.addActionListener(new ActionListener(){///////////////////删除用户 public void actionPerformed(ActionEvent e){ //获得当前用户选中的记录name int row = table.getSelectedRow(); //获得该条选中的记录的Vector对象 Vector v = (Vector)datamodel.getDataVector().get(row); //TODO:获得这条记录中的第一个字段的值,即用户名 User U=new User(); U.setId((int)v.get(0)); AdminDao AD=new AdminDao(); AD.yonghu(U, 3); AD.yonghu(U, 2); reflushTable(); } });
jb3.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ jf.dispose(); newAdmin_Xuanxiang(); } });
}
///////////刷新表格
public void reflushTable(){ UserDao UD = new UserDao(); ArrayList
private Vector UserVector(User U){ Vector v = new Vector(); v.add(U.getId()); v.add(U.getName()); v.add(U.getPassword()); v.add(U.getPhonenumber()); return v; } }
用户管理模块主要SQL语句如下:
(1)对用户密码进行修改
UPDATE usertable SET UserPassword= '\
(2)对用户和用户信息进行删除
delete from usertable where UserID='\delete from degreetable where UserID='\
11
where UserID= '\