我有一个问题,我有一个用netBeans制作的销售点系统,2个用户可以在我的系统中注册:“管理员”和“供应商”,系统中有几个模块,包括“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);
}
前面代码的问题是,当我将 print 赋予“tUsuario”的值时,它总是给我列表中第一个的 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;
}
最后,我给您留下“登录”类的代码,这是每个用户信息的集合和获取所在的位置:
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”的值