提问人:Ukantor 提问时间:6/14/2023 更新时间:6/14/2023 访问量:20
我想为我的销售点的用户提供特权,但我不知道如何,有什么建议吗?
I want to give privileges to the users of my point of sale but I don't know how, any suggestions?
问:
我有一个问题,我有一个系统,它是在 netBeans 中制作的销售点,2 个用户可以在我的系统中注册:“Administrador”和“Vendedor”,系统中有几个模块,包括允许您输入、修改、删除和搜索数据库中的文章的“Inventario”模块,问题是我只希望管理员有权进入该模块, 并且卖家无法访问它。
我有一个想法,就是在“Inventario”按钮方法中放一个这样的代码来禁止它进入,但它对我不起作用,代码是这样的:
//"usu" is the object of the "Login" class, which is where I declare the sets and gets of the user information, and "admin" is the name that is assigned to someone in the "tipoUsuario" variable when you register them as admin
String tUsuario=usu.getTipoUsuario();
if(tUsuario.equals("admin"))
{
LimpiarTable();
ListarArticulo();
jTabbedPane1.setSelectedIndex(1);
}
问题是代码不起作用,当打印“getTipoUsuario”所取的值时,它告诉我它返回了值“null”。 我知道代码可能是错误的,并且不起作用,因为我是编程新手。 尝试使用以下代码,尝试通过“id_usuario”变量获取“tipoUsuario”变量的值,代码如下:
//"login" is the class where I have all the information of the users, the sets and gets, "usuarios" is the object of another class called "loginDAO" in which I have the method "ListarUsuarios()"
List<login> ListarUsuario = usuarios.ListarUsuarios();
modelo = (DefaultTableModel) tablaUsuarios.getModel();
Object [] ob = new Object[4];
for(int i=0; i < ListarUsuario.size();i++){
ob[0] = ListarUsuario.get(i).getId_usuario();
ob[1] = ListarUsuario.get(i).getTipoUsuario();
ob[2] = ListarUsuario.get(i).getNombre();
//ob[3] = ListarUsuario.get(i).getApellido_paterno();
//ob[4] = ListarUsuario.get(i).getApellido_materno();
ob[3] = ListarUsuario.get(i).getContrasena();
modelo.addRow(ob);
}
int tID = usu.getId_usuario();
String tUsuario = ListarUsuario.get(tID).getTipoUsuario();//usu.getTipoUsuario();
if(tUsuario.equals("admin"))
{
LimpiarTable();
ListarArticulo();
jTabbedPane1.setSelectedIndex(1);
}
前面代码的问题在于,当我打印“tUsuario”的值时,它总是给我列表中第一个的typeUser,而不是其他的typeUser。
下面我留下了另一个名为“LoginDAO”的类中的“ListarUsuarios”方法的代码:
public List ListarUsuarios(){
List<login> ListaUsuarios = new ArrayList();
String sql = "SELECT * FROM usuarios";
try{
con = cn.getConnection();
ps = con.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next()){
login ld = new login();
ld.setId_usuario(rs.getInt("id_usuario"));
ld.setTipoUsuario(rs.getString("tipoUsuario"));
ld.setNombre(rs.getString("nombre"));
//ld.setApellido_paterno(rs.getString("apellido_paterno"));
//ld.setApellido_materno(rs.getString("apellido_materno"));
ld.setContrasena(rs.getString("contrasena"));
ListaUsuarios.add(ld);
}
}catch(SQLException e){
System.out.println(e.toString());
}
return ListaUsuarios;
}
最后,我给你留下了“login”类的代码,这是每个用户信息的集合和获取所在的位置:
package Modelo;
//Constructor para varibles del Usario con getters y seters
public class login {
private int id_usuario;
private String nombre;
private String apellido_paterno;
private String apellido_materno;
private String tipoUsuario;
private String contrasena;
private String correo;
private int id_proveedor;
private String nombre_proveedor;
private String telefono_proveedor;
private String direccion_proveedor;
private String domicilio_proveedor;
private String email_proveedor;
public login() {
}
public String getDomicilio_proveedor() {
return domicilio_proveedor;
}
public void setDomicilio_proveedor(String domicilio_proveedor) {
this.domicilio_proveedor = domicilio_proveedor;
}
public login(int id_usuario, String nombre, String contrasena, String tipoUsuario, int id_proveedor,String nombre_proveedor,String telefono_proveedor,String direccion_proveedor,String email_proveedor) {
this.id_usuario = id_usuario;
this.nombre = nombre;
this.contrasena = contrasena;
this.apellido_paterno = apellido_paterno;
this.apellido_materno = apellido_materno;
this.tipoUsuario = tipoUsuario;
this.correo = correo;
this.id_proveedor = id_proveedor;
this.nombre_proveedor = nombre_proveedor;
this.telefono_proveedor = telefono_proveedor;
this.direccion_proveedor = direccion_proveedor;
this.email_proveedor = email_proveedor;
}
public int getId_proveedor() {
return id_proveedor;
}
public void setId_proveedor(int id_proveedor) {
this.id_proveedor = id_proveedor;
}
public String getNombre_proveedor() {
return nombre_proveedor;
}
public void setNombre_proveedor(String nombre_proveedor) {
this.nombre_proveedor = nombre_proveedor;
}
public String getTelefono_proveedor() {
return telefono_proveedor;
}
public void setTelefono_proveedor(String telefono_proveedor) {
this.telefono_proveedor = telefono_proveedor;
}
public String getDireccion_proveedor() {
return direccion_proveedor;
}
public void setDireccion_proveedor(String direccion_proveedor) {
this.direccion_proveedor = direccion_proveedor;
}
public String getEmail_proveedor() {
return email_proveedor;
}
public void setEmail_proveedor(String email_proveedor) {
this.email_proveedor = email_proveedor;
}
public int getId_usuario() {
return id_usuario;
}
public String getApellido_paterno() {
return apellido_paterno;
}
public void setApellido_paterno(String apellido_paterno) {
this.apellido_paterno = apellido_paterno;
}
public String getApellido_materno() {
return apellido_materno;
}
public void setApellido_materno(String apellido_materno) {
this.apellido_materno = apellido_materno;
}
public String getTipoUsuario() {
return tipoUsuario;
}
public void setTipoUsuario(String tipoUsuario) {
this.tipoUsuario = tipoUsuario;
}
public String getCorreo() {
return correo;
}
public void setCorreo(String correo) {
this.correo = correo;
}
public void setId_usuario(int id_usuario) {
this.id_usuario = id_usuario;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getContrasena() {
return contrasena;
}
public void setContrasena(String contrasena) {
this.contrasena = contrasena;
}
}
你能告诉我为什么我的代码不起作用或为什么变量“tUsuario”返回“null”吗?或者,如果您发现我的方法是错误的,您能给我留下一个有效的方法吗?
非常感谢你,祝你下午愉快!
尝试使用“if”进行求解,并检索“tipoUsuario”的值,将其与“admin”的字符串进行比较,该字符串是用户为管理员时采用“tipoUsuarios”的值
答:
您的全局变量是 “private” tipoUsuario access。使用私有方法“设置”它。检查全局变量上的所有其他设置方法并更正它们。
private void setTipoUsuar(String tipousuario) {
this.tipoUsuario = tipousuario;
}
public void setTipoUsuario(String tipousuario) {
setTipoUsuar(tipousuario);
}
评论