private void addUser() { String username = JOptionPane.showInputDialog(this, "请输入用户名:"); String password = JOptionPane.showInputDialog(this, "请输入用户密码:"); String role = JOptionPane.showInputDialog(this, "请输入角色名:"); // 校验输入是否合法 if (username == null || username.isEmpty()) { JOptionPane.showMessageDialog(this, "用户名不能为空!"); return; } if (password == null || password.isEmpty()) { JOptionPane.showMessageDialog(this, "密码不能为空!"); return; } if (role == null || role.isEmpty()) { JOptionPane.showMessageDialog(this, "角色名不能为空!"); return; } // 添加用户到数据库中 try { // 数据库连接信息 Connection connection = DriverManager.getConnection(URL, USERNAME ,PASSWORD); // 执行插入用户信息的数据库操作 PreparedStatement statement = connection.prepareStatement("INSERT INTO user (username, password, role_name) VALUES (?, ?, ?)"); // 设置其他参数值 statement.setString(1, username); statement.setString(2, password); statement.setString(3, role); statement.executeUpdate(); statement.close(); connection.close(); // 显示成功信息 JOptionPane.showMessageDialog(this, "用户添加成功!"); } catch (SQLException ex) { ex.printStackTrace(); JOptionPane.showMessageDialog(this, "添加用户失败:" + ex.getMessage()); } // 刷新用户列表 refreshUserTable(); }
时间: 2024-02-14 20:33:43 浏览: 354
这段代码是一个添加用户的方法,主要包括以下几个步骤:
1. 使用 JOptionPane.showInputDialog 方法弹出对话框,让用户输入用户名、密码和角色名,并将输入的值分别存储到 username、password 和 role 变量中。
2. 对输入的用户名、密码和角色名进行校验,如果有任何一个为空,就弹出警告框并返回。
3. 获取数据库连接,并使用 PreparedStatement 对象执行插入用户信息的 SQL 语句,其中 ? 是占位符,通过 setString 方法将 username、password 和 role 变量的值分别赋给占位符。
4. 执行 statement.executeUpdate() 方法将数据插入到数据库中。
5. 关闭 statement 和 connection 对象,释放资源。
6. 弹出成功信息的警告框。
7. 调用 refreshUserTable() 方法刷新用户列表。
需要注意的是,这段代码存在 SQL 注入的风险,因为用户输入的字符串没有进行任何过滤或转义,攻击者可以通过输入特殊字符来执行恶意代码。为避免这种风险,应该使用 PreparedStatement 对象,并通过占位符的方式来避免字符串拼接。
相关问题
protected void RegCheck(ActionEvent e) { String username=textField.getText(); String password=textField_1.getText(); String phone=textField_2.getText(); String sex=""; if(rdbtnNewRadioButton.isSelected()){ sex=rdbtnNewRadioButton.getText(); }else{ sex=rdbtnNewRadioButton_1.getText(); } if (toolUtil.isEmpty(username) || toolUtil.isEmpty(password)||toolUtil.isEmpty(phone)) { JOptionPane.showMessageDialog(null, "请输入相关信息"); return; } User user = new User(); user.setUserName(username); user.setPassword(password); user.setSex(sex); user.setPhone(phone); user.setRole(1); Connection con = null; try { con = (Connection) dbUtil.getConnection(); int i = userDao.addUser(con, user); if (i == 2) { JOptionPane.showMessageDialog(null, "该用户名已存在,请重新注册"); } else if (i == 0) { JOptionPane.showMessageDialog(null, "注册失败"); } else { JOptionPane.showMessageDialog(null, "注册成功"); jf.dispose(); new LoginFrm(); } } catch (Exception e1) { e1.printStackTrace();//打印异常栈信息 } finally {//无论是否发生异常,程序都会在 finally 语句块中执行 dbUtil.closeCon(con) 方法来关闭数据库连接 try { dbUtil.closeCon(con); } catch (Exception e1) { e1.printStackTrace(); } } }什么意思
这是一个 Java 程序代码,它是一个注册功能的实现。它从文本框中获取用户输入的用户名、密码、电话和性别信息,然后将这些信息封装到一个 User 对象中。接着它调用了一个名为 userDao 的类的 addUser 方法,来将这个 User 对象插入到数据库中。如果注册成功,程序会关闭当前注册窗口,打开登录窗口。如果注册失败,程序会弹出相应的提示框。这段代码还有异常处理和数据库连接的关闭操作。
解释这段代码: addUser() { let self = this const db = wx.cloud.database() db.collection('user').add({ data:{ username: self.data.form.username, password: self.data.form.password, role: parseInt(self.data.form.role) }, success(res){ Message.success({ context: self, offset: [20, 32], duration: 5000, content: '新增成功', }); self.data.form.username = '' self.data.form.password = '' self.setData({ UserFormStatus: false, form: self.data.form }) self.getUserList() } }) },
这段代码是一个函数 `addUser()`,它的作用是将用户信息添加到云数据库中。代码中首先定义了一个变量 `self` 指向当前对象,然后通过 `wx.cloud.database()` 方法获取到云数据库实例,并调用 `collection()` 方法获取到名为 `user` 的集合。
接下来,调用 `add()` 方法将用户信息添加到集合中。其中,`data` 属性是一个对象,它包含了要添加的用户信息,包括用户名、密码和角色等。添加成功后,将会执行 `success` 回调函数,该函数会弹出一个提示框(使用了 `Message` 组件),提示用户添加成功,并清空表单中的用户名和密码。
最后,通过调用 `setData()` 方法更新数据,将 `UserFormStatus` 属性设置为 `false`,表示隐藏表单,同时重新获取用户列表,以便在页面上显示最新的用户信息。
阅读全文