学生学籍管理系统~~功能界面

之前介绍了登录界面的设计,现在介绍一下注册管理员和录入信息的部分。

设计注册管理员的思想是:默认一个拥有创建用户的管理员,这个管理员可以创建数据库登录用户(相当于创建教师),而这些用户只能登录和进行其他操作没有创建用户的功能(类似于教师不能创建教师), 创建用户成功后,会将账号密码和昵称保存到My_Adminstrator表中。

登录界面的作用是验证是否能登录数据库,登录成功后将账号、密码通过参数的形式通过其他类的构造函数传递过去,再在其他类中重新连接数据库。代码中我去掉了import。

public class Register extends JFrame implements ActionListener{	
	Font font = new Font("楷体_GB2312",Font.BOLD+Font.ITALIC,20);
	Font font1 = new Font("楷体_GB2312",Font.BOLD+Font.ITALIC,15);
	
	JTextField register_account;
	JTextField register_name;
	JTextField register_password;
	
	String account;
	String password;
	String connectDB = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=Databaseproject";
	String JDriver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
	Connection conR;
    Statement stmtR;
	
	JButton JB_sure = new JButton("确定");
	JButton JB_reset = new JButton("重置");
	
	String path = "C:/Users/yangcheng/workspace/DatabaseExperiment/src"
			+ "/Graphical_User_Interface/choice.png";
	String path1 = "C:/Users/yangcheng/workspace/DatabaseExperiment/src"
			+ "/Graphical_User_Interface/成功.png";
	
	JPanel jpl = new JPanel();
	JPanel jpl1 = new JPanel();
	JPanel jpl2 = new JPanel();
	JPanel jpl3 = new JPanel();
	
	public Register(String ac,String pw){
		account = ac;
		password = pw;
		try {
	        Class.forName(JDriver);
	        conR = DriverManager.getConnection(connectDB, account, password);
	        stmtR = conR.createStatement();
	    } catch (ClassNotFoundException | SQLException e) {
	    	dispose();
	    }
		this.setTitle("管理员注册");
		this.setSize(280,230);
		this.setLayout(new GridLayout(4,2,15,20));
		this.setLocationRelativeTo(null);
		
		ImageIcon bg = new ImageIcon(path);                        //背景图片
		JLabel label = new JLabel(bg);
		label.setBounds(0,0,bg.getIconWidth(),bg.getIconHeight());
		this.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));
		JPanel imgP = (JPanel)this.getContentPane();
		imgP.setOpaque(false);
		
		JLabel lba = new JLabel("账号:");							//账号
		register_account = new JTextField(10);						
		lba.setFont(font);	
		register_account.setFont(font1);
		jpl.add(lba);
		jpl.add(register_account);
		jpl.setOpaque(false);
		this.add(jpl);
		
		JLabel lbn = new JLabel("姓名:");							//用户名
		register_name = new JTextField(10);						
		lbn.setFont(font);	
		register_name.setFont(font1);
		jpl1.add(lbn);
		jpl1.add(register_name);
		jpl1.setOpaque(false);
		this.add(jpl1);
		
		JLabel lbp = new JLabel("密码:");							//密码
		register_password = new JTextField(10);						
		lbp.setFont(font);
		register_password.setFont(font1);
		jpl2.add(lbp);
		jpl2.add(register_password);
		jpl2.setOpaque(false);
		this.add(jpl2);
		
		JB_sure.setActionCommand("sure");
		JB_sure.addActionListener(this);
		jpl3.add(JB_sure);
		
		JB_reset.setActionCommand("reset");
		JB_reset.addActionListener(this);
		jpl3.add(JB_reset);
		
		jpl3.setOpaque(false);
		this.add(jpl3);		
        this.setVisible(true);
		this.setResizable(false);
	}
	
	public void actionPerformed(ActionEvent e){
		if(e.getActionCommand().equals("sure")){
			String user = register_account.getText();
			String name = register_name.getText();
			String pwd = register_password.getText();			
			if(!user.equals("") && !name.equals("") && !pwd.equals("")){
				try{
					ResultSet rs = stmtR.executeQuery("select * from My_Adminstrator");
					while (rs.next()) {
						if(rs.getString("Account").equals(user)){
							JOptionPane.showMessageDialog(null,"该用户已经存在");
							stmtR.close();
					        conR.close();
							dispose();
							break;
			            }
					}
					String str = "create login "+user+" with password = '"+pwd                   //创建登录用户,并指定数据库
								 +"', default_database=Databaseproject";
					
					String str1 = "create user "+user+" for login "+ user+" with default_schema=Databaseproject";//创建用户
					
					String str2 = "exec sp_addrolemember 'db_owner', '"+user+"'";//赋予权限
					
					String sql = "insert into My_Adminstrator values('"+user+"','"+name+"','"+pwd+"')";//添加到表中
					
					stmtR.executeUpdate(str);
					stmtR.executeUpdate(str1);
					stmtR.executeUpdate(str2);
					stmtR.executeUpdate(sql);
					
					JOptionPane.showMessageDialog(null,"注册成功");
					stmtR.close();
			        conR.close();
			        dispose();
				}catch(Exception ex){
					JOptionPane.showMessageDialog(null,"用户权限不够");
					try {
						stmtR.close();
						conR.close();
					} catch (SQLException e1) {
						e1.printStackTrace();
					}
			        dispose();
				}
			}else{
				JOptionPane.showMessageDialog(null,"信息不能为空");
			}
		}
		
		if(e.getActionCommand().equals("reset")){
			register_account.setText(null);
			register_name.setText(null);
			register_password.setText(null);
		}
	}
}

注册界面: 代码的逻辑很简单,通过文本框的形式获取账号、姓名、密码,判断是否为空,数据库表中是否存在该用户,如果不存在且是超级管理员则成功,反之则失败。


由于录入信息的代码比较繁琐比较多,我就挑一个最少的介绍吧,学籍界面,代码中我去掉了import。

public class School_Manage extends JFrame implements ActionListener{
	String account;
	String password;
	String 
  • 3
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值