数据表与简单java类映射(角色权限)

先上模板

class Dept{//部门信息
private int did;
private String dname;
public Dept(int did, String dname) {
this.did=did;
this.dname=dname;
}
public String getInfo() {
	return "【部门】 did:"+this.did+ " 名称:"+this.dname	;
}
}


class Emp{//雇员信息
private int eid;
private String ename;
public Emp(int eid,String ename) {
	this.eid=eid;
	this.ename=ename;
	}
public String getInfo() {
	return "【雇员】eid:"+this.eid+"ename:"+this.ename;
}

}


class Role{//角色信息
private	int rid;
private String title;//标题
public Role(int rid,String title) {
this.rid=rid;
this.title=title;
}
public String getInfo() {
return "[角色]rid:"+this.rid+" title:"+this.title;
}
}

class Action{//权限,privilege
private int aid;
private String title;//标题
private String flag;//标记
public Action(int aid,String title,String flag) {
	this.aid=aid;
	this.title=title;
	this.flag=flag;
}
public String getInfo() {
	return "[] aid:"+this.aid+" title:"+this.title+" flag :"+this.flag;
}
}

再上代码

class Dept{//部门信息
private int did;
private String dname;
private Emp emps[];//一个部门有多个雇员
private Role role;//一个部门有一个角色
public Dept(int did, String dname) {
this.did=did;
this.dname=dname;
}
public void setEmps(Emp emps[]) {
	this.emps=emps;
}
public void setRole(Role role) {
	this.role=role;
}
public Emp[] getEmps() {
	return this.emps;
}
public Role getRole() {
	return this.role;
}
public String getInfo() {
	return "【部门】 did:"+this.did+ " 名称:"+this.dname	;
}
}


class Emp{//雇员信息
private int eid;
private String ename;
private Dept dept;//一个雇员属于一个部门
public Emp(int eid,String ename) {
	this.eid=eid;
	this.ename=ename;
	}
public void setDept(Dept dept) {
this.dept=dept;}
public Dept getDept() {
return this.dept;
}
public String getInfo() {
	return "【雇员】eid:"+this.eid+"ename:"+this.ename;
}


}


class Role{//角色信息
private	int rid;
private String title;//标题
private Dept depts[];//多个部门具备此角色
private Action actions[];//一个角色拥有多个权限
public Role(int rid,String title) {
this.rid=rid;
this.title=title;
}
public void setDepts(Dept depts[]) {
	this.depts=depts;
}
public void setActions(Action actions[]) {
	this.actions=actions;
}
public Dept [] getDepts() {
	return this.depts;
}
public Action [] getActions() {
	return this.actions;
}
public String getInfo() {
return "[角色]rid:"+this.rid+" title:"+this.title;
}
}

class Action{//权限,privilege
private int aid;
private String title;//标题
private String flag;//标记
private Role roles[];
public Action(int aid,String title,String flag) {
	this.aid=aid;
	this.title=title;
	this.flag=flag;
}

public void serRoles(Role[] roles) {
	this.roles=roles;
}
public Role[] getRolese() {
	return this.roles;
}
public String getInfo() {
	return "[权限] aid:"+this.aid+" title:"+this.title+" flag :"+this.flag;
}
}

class TestDemo{
	public static void main(String args[]) {
		//第一步:设置数据之间的关系
		//1.创建部门数据
		Dept d10=new Dept(10,"财务部");
		Dept d20=new Dept(20,"市场部");
		//2.创建雇员数据
		Emp e579 =new Emp(579,"SMITH");
		Emp e439 =new Emp(439,"LIXIAOLU");
		Emp e007 =new Emp(007,"WANGSICONG");
		Emp e001 =new Emp(001,"KING"); 
		//3.创建角色信息
		Role r100=new Role(100,"经理");
		Role r200=new Role(200,"职员");
		//4.创建权限数据
		Action a1000=new Action(1000,"雇员入职","emp:add");
		Action a2000=new Action(2000,"雇员升职","emp:eidit");
		Action a3000=new Action(3000,"发布公告","news:eidit");
		Action a6000=new Action(6000,"查看客户信息","customer:list");
		Action a7000=new Action(7000,"回访记录","customer:add");
		//5.设置角色和权限的关系
		r100.setActions(new Action[] {a1000,a2000,a3000,a6000,a7000});
		r200.setActions(new Action[] {a6000,a7000});
		//6.设置权限和角色的关系
		a1000.serRoles(new Role[] {r100});
		a2000.serRoles(new Role[] {r100});
		a3000.serRoles(new Role[] {r100});
		a6000.serRoles(new Role[] {r200});
		a7000.serRoles(new Role[] {r200});
		//7.设置部门和角色的关系
		d10.setRole(r100);
		d20.setRole(r200);
		//8.设置角色和部门的关系
		r100.setDepts(new Dept[] {d10});
		r200.setDepts(new Dept[] {d20});
		//9.设置雇员和部门的关系
		e579.setDept(d10);
		e439.setDept(d10);
		e007.setDept(d20);
		e001.setDept(d20);
		//10.设置部门和雇员
		d10.setEmps(new Emp[] {e579,e439});
		d20.setEmps(new Emp[] {e007,e001});
		//第二部:取出相应数据
		//要求可以根据一个员工找到他所以对应的部门,
		//以及该部门对应的角色,以及每个角色对应的所有权限
		System.out.println("1.要求可以根据一个员工找到他所以对应的部门,"
				+ "以及该部门对应的角色,以及每个角色对应的所有权限");
		System.out.println(e579.getInfo());
		System.out.println("\t"+e579.getDept().getInfo());
		System.out.println("-------------------------------");
		for(int x=0;x<e579.getDept().getEmps().length;x++)
		System.out.println("\t"+e579.getDept().getEmps()[x].getInfo());
		System.out.println();
	System.out.println("\t\t"+e579.getDept().getRole().getInfo());
	for(int x=0;x<e579.getDept().getRole().getActions().length;x++) {
		System.out.println("\t\t\t|-"+e579.getDept().getRole().getActions()[x].getInfo());
	}	
	System.out.println("--------------------------------------");
	System.out.println("2、可以根据一个角色找到具备此角色的所有部门,以及该部门下的所有员工");
	System.out.println(r200.getInfo());
	for(int x=0;x<r200.getDepts().length;x++) {
		System.out.println("\t|-"+r200.getDepts()[x].getInfo());
		for(int y=0;y<r200.getDepts()[x].getEmps().length;y++) {
			System.out.println("\t\t|-"+r200.getDepts()[x].getEmps()[y].getInfo());
		}
	}
	//------------------------------------------
	System.out.println("3,根据一个权限列出具备有该权限的所有的角色,\n"
			+ "  以及每一个角色下对应的所有部门,以及每个部门中的所有员工。 ");
	System.out.println(a1000.getInfo());
	for(int x=0;x<a1000.getRolese().length;x++) {
		System.out.println("\t|-"+a1000.getRolese()[x].getInfo());
		for(int y=0;y<a1000.getRolese()[x].getDepts().length;y++) {
			System.out.println("\t\t|-"+a1000.getRolese()[x].getDepts()[y].getInfo());
		for(int z=0;z<a1000.getRolese()[x].getDepts()[y].getEmps().length;z++) {
			System.out.println("\t\t\t|-"+a1000.getRolese()[x].getDepts()[y].getEmps()[z].getInfo());
		}
		}
	}
	}
	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Vue菜单权限和路由权限可以通过Java接口提供数据来实现。在Vue中,我们可以定义一个菜单权限数据,该数据包含了用户在系统中具有的菜单权限。可以使用Java接口来提供这些菜单权限数据,然后在Vue中进行调用和展示。 在Java中,我们可以定义一个接口,例如MenuService,该接口提供获取菜单权限数据的方法。在该接口中,可以定义获取所有菜单权限的方法、根据用户ID获取相应的菜单权限等方法。具体的实现可以根据业务需求来进行编写,可以从数据库或其他数据源中获取相应的菜单权限数据。 在Vue中,可以通过调用Java接口的方法来获取菜单权限数据。可以在Vue的页面组件中调用这些接口方法,然后将获取到的菜单权限数据进行展示。可以根据用户的菜单权限动态地渲染菜单和路由,并且可以根据用户的权限进行相应的权限校验和控制。 通过Java接口提供数据可以实现菜单权限和路由权限的管理和控制。可以根据具体的需求来灵活地定义和设计接口,满足系统的功能和安全性要求。同时,使用Vue可以实现前端的动态展示和控制,使得系统更加灵活和易用。 ### 回答2: vue菜单权限和路由权限一般是由后端的java接口提供数据。在前端的vue项目中,我们可以通过调用java接口获取菜单数据和权限数据,并根据返回的数据来动态生成菜单和控制路由权限。 首先,我们需要在vue项目中配置路由,包括定义路由路径和组件的映射关系。然后,在java接口中,我们可以编写相应的接口来返回菜单数据和权限数据。一般来说,菜单数据和权限数据可能都需要根据用户的角色权限等信息来进行动态的获取和过滤。 在vue项目中,我们可以使用axios等库来发送请求获取java接口的数据。一般来说,我们可以在vue的created或mounted等生命周期钩子函数中发送请求,并在请求成功后,将返回的数据保存到vue的data或vuex的状态管理中。 接着,我们可以在vue项目的菜单组件中根据接口返回的菜单数据来动态生成菜单结构。根据用户的权限,可能需要对菜单数据进行删减或隐藏某些菜单项。 对于路由权限,我们可以在路由配置中根据接口返回的权限数据来动态设置路由的访问权限。这样,当用户访问某个需要权限才能访问的路由时,我们可以根据用户的权限判断是否允许访问。 总体而言,通过java接口提供数据可以实现vue项目的菜单权限和路由权限的动态管理。通过动态生成菜单和控制路由的访问权限,我们可以根据用户的角色权限来灵活控制菜单展示和页面访问。这种基于后端java接口提供数据的方式,可以提高项目的安全性和可维护性。 ### 回答3: Vue菜单权限和路由权限是一种常用的前端权限管理方式,通常与Java接口配合使用。 菜单权限指的是根据用户角色权限级别,动态展示和控制菜单项的可见性和可操作性。通过Java接口传递用户角色权限信息到前端,前端根据这些信息动态生成菜单项,并根据用户的权限显示或隐藏相应的菜单项。例如,管理员拥有全部菜单权限,在菜单中会展示所有功能选项,而普通用户可能只能看到部分功能。 路由权限则是根据不同用户角色权限级别,决定用户是否能够访问特定的路由页面。通过Java接口传递用户角色信息或权限信息到前端,前端根据这些信息进行路由拦截或权限校验,只有具备相应权限的用户才能够访问相应的页面。例如,某些页面只有管理员或高级用户才能够访问。 Java接口在这里起到了向前端提供权限数据的作用。通常,前端会通过发起HTTP请求访问Java接口,将用户的角色权限信息传递到接口端。接口端进行相应的权限验证或菜单数据处理,然后返回给前端对应的数据。前端接收到数据后,根据这些数据进行菜单项和路由的生成、权限验证等操作。 总之,通过Vue菜单权限和路由权限的方式,配合Java接口提供数据,可以实现灵活的权限管理功能,根据用户的角色权限级别来动态控制菜单和路由的展示和访问。这种权限管理方式可以有效提高应用的安全性和可用性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值