- 浏览: 1990371 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (509)
- JavaEE (122)
- Oracle数据库 (29)
- JavaScript (37)
- SAP (5)
- MySql数据库 (7)
- JavaSE (4)
- Ajax (1)
- jQuery (13)
- SSH框架 (36)
- Web Service (10)
- JSF框架 (2)
- JBPM (0)
- ireport报表 (2)
- ibatis (5)
- Hibernate (31)
- JSP (11)
- Tomcat 服务器 (20)
- Other (19)
- JavaWeb (4)
- Maven (11)
- OSWorkFlow (10)
- HTML (13)
- Exception汇总 (7)
- SVN (2)
- 笑话 (1)
- JSTL (1)
- WebSphere Message Broker (13)
- ANT命令 (3)
- Liunx (12)
- Struts2 (26)
- Eclipse (6)
- DOS (3)
- Flex (11)
- WebSphere (1)
- 开发常用工具 (3)
- Junit (2)
- EJB (4)
- Struts1.2 (2)
- Jboss (1)
- Android (2)
- Java框架源码解析 (1)
- Spring (4)
- MyBatis (6)
- SpringMVC (4)
- Jetty (2)
- 数据库表设计 (1)
- SSO (4)
最新评论
-
贝塔ZQ:
也可以试试PageOffice插件,觉得更简单点
Jxl操作Excel设置背景、字体颜色、对齐方式、列的宽度 -
jia1208:
...
Could not publish server configuration for Tomcat v6.0 Server at localhost. -
u011274527:
赞
java.io.EOFException java.io.ObjectInputStream$PeekInputStream.readFully 错误 -
旭旭小牛啦:
怎么没哟了,继续赛
jQuery 选择器 -
wzw3919:
100行会报空指针
Java 解压缩zip文件
package pack.y2.hibernate.serviceimpl; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; import pack.y2.hibernate.daoimpl.MenusDaoImpl; import pack.y2.hibernate.daoimpl.RolesDaoImpl; import pack.y2.hibernate.daoimpl.UserDaoImpl; import pack.y2.hibernate.idao.IMenusDao; import pack.y2.hibernate.idao.IRolesDao; import pack.y2.hibernate.idao.IUsersDao; import pack.y2.hibernate.iservice.IUserService; import pack.y2.hibernate.pojo.Menus; import pack.y2.hibernate.pojo.Roles; import pack.y2.hibernate.pojo.Users; public class UserServiceImpl implements IUserService{ IUsersDao iuser=new UserDaoImpl(); IMenusDao imeus=new MenusDaoImpl(); IRolesDao irole=new RolesDaoImpl(); /** * 根据用户名得到权限; */ public Set selectByName(String name) { // TODO Auto-generated method stub String hql="From Menus as M join fetch M.roleses R join fetch R.userses U where U.username=?"; List list=iuser.pageQuery(hql, null, null,name); //把list转成set集合; Set set=new HashSet(list); return set; } //得到所有的用户; public Map selectAll(Integer page) { // TODO Auto-generated method stub String hql="From Users"; List list=iuser.pageQuery(hql,page,8); Map map=new HashMap(); map.put("UserList", list); String hql2="select count(*) From Users"; //得到总页数; List list2=iuser.pageQuery(hql2, null, null); Object obj=list2.get(0); int sum=Integer.parseInt(obj.toString()); //添加总记录数; map.put("Sum",sum); //添加总页数; Integer sumPage=sum%8==0?sum/8:sum/8+1; map.put("SumPage",sumPage); return map; } //查询用户已有的权限; public List findGrant_UserById(Long userid) { // TODO Auto-generated method stub String hql="From Roles r where r.userses.userid=?"; List list=iuser.pageQuery(hql, null, null,userid); return list; } //查询用户没有的权限; public List findNotGrant_UserById(Long userid) { // TODO Auto-generated method stub String hql="From Roles where rolesid not in(select r.rolesid From Roles r where r.userses.userid=?)"; List list=iuser.pageQuery(hql, null, null, userid); return list; } //保存用户角色的方法; public void saveUserGrant(Long userid, String rolesid) { //根据用户编号查找出用户对象; Users users=(Users)iuser.selectById(userid); System.out.println("roles字符串为:"+rolesid); if(rolesid==null || rolesid.length()<1){ //清除所有的集合; users.getRoleses().clear(); }else{ StringBuffer sb=new StringBuffer("From Roles r where r.rolesid in("); sb.append(rolesid); sb.setCharAt(sb.toString().length()-1, ')'); String hql=sb.toString(); List list=iuser.pageQuery(hql, null, null); Set set=new HashSet(list); System.out.println("list大小:"+list.size()); //把角色重新放入集合中; users.setRoleses(set); } //最后更新用户; iuser.add(users); } //得到所有的菜单项; public List getMenusAll() { // TODO Auto-generated method stub List list=imeus.selectAll(); return list; } public static void main(String[] args) { Set list=new UserServiceImpl().getUsersByRolesId(new Long(1)); for(Object obj:list){ Users u=(Users)obj; System.out.println(u.getUsername()); } } //根据角色编号查找出菜单编号; public List getRoleAllByRoleId(Long roleid){ String hql="From Menus m where m.roleses.rolesid=?"; List list=imeus.pageQuery(hql, null, null, roleid); return list; } //得到所有的角色; public List getRolesAll(){ String hql="From Roles"; List list=irole.selectAll(); return list; } //根据穿过来的角色编号查找出角色对象;角色对象中有一个菜单对象的集合; //首先清除所有的菜单权限;然后在判断menusid是否为空;如果不为空,则用StringBuffer sb=new StringBuffer("From Roles where r .menus.memusid in("); //然后在把menusid传入到in里面;拼成sql语句;执行后返回List结果集;把结果集放入set集合中; //最后调用更新方法进行更新操作; public void saveMenusByRolesId(Long rolesId, String menusId) { String hql="From Roles r where r.rolesid=?"; List list=irole.pageQuery(hql, null, null, rolesId); //得到一个角色对象; Roles role=(Roles)list.get(0); //清除角色对象中的所有菜单; role.getMenuses().clear(); if(menusId!=null && menusId.length()>0){ //根据menusId查找出所有的菜单出来; StringBuffer sb=new StringBuffer("From Menus s where s.menusid in("); sb.append(menusId); //把菜单编号最后一个,替换成")"; sb.setCharAt(sb.length()-1, ')'); List menus=imeus.pageQuery(sb.toString(), null, null, null); Set set=new HashSet(menus); //然后把,菜单集合重新放入到角色对象中; role.setMenuses(set); } //最后,进行更新; irole.update(role); System.out.println("菜单更新完成!。"); } public Set getUsersByRolesId(Long rolesid) { // TODO Auto-generated method stub String hql="From Roles r where r.rolesid=?"; List list=imeus.pageQuery(hql, null, null,rolesid); Set set=new HashSet(); for (Object obj : list) { Roles role=(Roles)obj; set=role.getUserses(); } return set; } }
创建角色的数据库脚本,
--创建用户表; drop table users; create table users( --主键, userid number primary key not null, username varchar2(50)not null, userpass varchar2(20)not null, --外键,所属部门; deptid number not null, --生日; birthday date not null, sex varchar2(4)not null, age number not null, --手机; combine varchar2(11)null, email varchar2(50)null, address varchar2(50)null, zipcode varchar2(8)null, remark varchar2(50)null, --创建users表的所属部门的外键; foreign key(deptid) references dept(deptid) ) --创建序列; drop sequence seq_users; create sequence seq_users; insert into users values(seq_users.nextval,'雪见','123456',3,sysdate,'女',23,'13459858985','xuejian@163.com','北京市','0101000','暂无备注'); insert into users values(seq_users.nextval,'李逍遥','123456',1,sysdate,'男',27,'15973556785','huge@126.com','北京市','014502','暂无备注'); insert into users values(seq_users.nextval,'龙葵','123456',2,sysdate,'男',20,'18978985858','longkui@126.com','湖南长沙','314502','暂无备注'); --创建角色表; drop table roles; create table roles( rolesid number primary key not null, --主键角色编号; rolename varchar2(20)not null --角色名称; ) drop sequence seq_roles; create sequence seq_roles; insert into roles values(seq_roles.nextVal,'管理员'); insert into roles values(seq_roles.nextVal,'程序员'); insert into roles values(seq_roles.nextVal,'项目经理'); insert into roles values(seq_roles.nextVal,'公司总裁'); --用户角色中间表; drop table user_roles; create table user_roles( urId number references users(userid), --<外键>用户编号; rolesid number references roles(rolesid) --<外键>角色编号; ); insert into user_roles values(1,1); insert into user_roles values(2,2); insert into user_roles values(3,3); --菜单表; drop table menus; create table menus( menusid number primary key not null, --菜单编号; menusname varchar2(20)not null, --菜单姓名; menusparent number not null, --父菜单编号; menusurl varchar2(150) null, --菜单链接; isshow number not null --是否显示; ) drop sequence seq_menus; create sequence seq_menus; --'-1'代表根目录 ; --1代表根目录下; 2--代表1的跟目下, --3代表-同级目录; insert into menus values(seq_menus.nextVal,'功能菜单',-1,'',1); insert into menus values(seq_menus.nextVal,'系统管理',1,'',1); insert into menus values(seq_menus.nextVal,'用户管理',2,'',1); insert into menus values(seq_menus.nextVal,'考勤管理',3,'',1); insert into menus values(seq_menus.nextVal,'个人设置',3,'',1); insert into menus values(seq_menus.nextVal,'短信管理',3,'',1); insert into menus values(seq_menus.nextVal,'通讯录管理',3,'',1); insert into menus values(seq_menus.nextVal,'权限管理',3,'',1); insert into menus values(seq_menus.nextVal,'公告管理',3,'',1); --角色菜单中间表; drop table rols_menus; create table rols_menus( rolesid number references roles(rolesid), --<外键>角色编号; menusid number references menus(menusid) --<外键>菜单编号; ) drop sequence seq_rols_menus; create sequence seq_rols_menus; insert into rols_menus values(1,1); insert into rols_menus values(1,2); insert into rols_menus values(2,1); insert into rols_menus values(2,2); insert into rols_menus values(3,1); insert into rols_menus values(4,2);
评论
2 楼
eclipseakwolf
2011-01-21
楼主,小菜又研究了
3代表的父节点是哪个??好像没插入3节点了??
75.insert into menus values(seq_menus.nextVal,'考勤管理',[color=red]3[/color],'',1); 76.insert into menus values(seq_menus.nextVal,'个人设置',[color=red]3[/color],'',1); 77.insert into menus values(seq_menus.nextVal,'短信管理',[color=red]3[/color],'',1); 78.insert into menus values(seq_menus.nextVal,'通讯录管理',[color=red]3[/color],'',1); 79.insert into menus values(seq_menus.nextVal,'权限管理',[color=red]3[/color],'',1); 80.insert into menus values(seq_menus.nextVal,'公告管理',[color=red]3[/color],'',1);
3代表的父节点是哪个??好像没插入3节点了??
1 楼
eclipseakwolf
2011-01-21
很不错的文章,苦苦寻找的,good
发表评论
-
解决Java服务器端插入数据到Mysql中乱码问题--简单几步轻松解决乱码问题
2015-11-13 17:52 2418当写入数据到mysql数据库中发生乱码时.请检查以下几个地 ... -
设计模式之-代理模式-Proxy
2015-04-28 21:24 869使用代理模式之前需要知道代理模式能做什么? 能有哪些好处以及 ... -
构建高并发、服务化、低耦合企业级脚骨:springmvc+mybatis+restfull+webservice+bootstrap html5
2015-04-14 01:17 85SpringMVC + Mybatis + SpringS ... -
教您搭建大型互联网企业架构:springmvc+mybatis+restful+webservice+quartz+bootstrap
2015-04-13 21:54 99SpringMVC + Mybatis + SpringS ... -
大型互联网服务集成平台:springmvc+mybatis+restful+webservice+quartz+bootstrap html5
2015-04-13 21:49 81SpringMVC + Mybatis + SpringSe ... -
大型互联网服务集成平台:springmvc+mybatis+restfull+JMS+webservice+bootstrap
2015-04-12 23:36 22SpringMVC + Mybatis + SpringS ... -
大型互联网服务集成平台:springmvc+mybatis+restfull+JMS+webservice+bootstrap
2015-04-12 23:33 83SpringMVC + Mybatis + SpringS ... -
Maven构建大型互联网架构springmvc+mybatis+Restfull+Webservice+Bootstrap
2015-04-12 23:28 71SpringMVC + Mybatis + SpringS ... -
maven构建高大上开源架构:springmvc+mybatis+rest+bootstrap html5
2015-04-12 23:25 23SpringMVC + Mybatis + SpringS ... -
手机App后台架构:Springmvc+SpringSecurity+mybatis+Rest+Quartz+Bootstrap Html5( Maven构建)
2015-04-09 01:39 76APP后台架构Maven构建,模拟大型互联网架构,支持高并发 ... -
maven构建springmvc+mybatis+rest+webservice+bootstrap html5(cms开源项目)
2015-04-09 01:21 85SpringMVC + Mybatis + SpringS ... -
Java正则表达式
2014-11-26 21:03 1220Java正则表达式: package pack.ja ... -
Cannot convert value of type [org.springframework.cache.ehcache.EhCacheCache
2014-11-10 20:03 6252错误信息: [org.springframework.be ... -
Collections工具类中的frequency方法统计单词出现的次数
2013-11-05 21:30 2818最近发现了一个Collections中有一个很好用的方法: ... -
Java 压缩Excel文件生成.zip文件
2013-05-08 22:22 7952首先创建文件目录,然后生成Excel文件到创建的目录下, ... -
Java 解压缩zip文件
2013-05-08 13:14 8354不借助于其他的第三方 ... -
Jxl操作Excel设置背景、字体颜色、对齐方式、列的宽度
2013-04-06 22:26 57720最近项目中需要用到导出Excel文件,以下是我写了一个通过j ... -
java获取字节的长度.
2012-05-17 22:00 6746我们经常要获取中文,数字,或者英文字符所占字节的长度,下面就列 ... -
StringBuffer-reverse()字符反转功能
2012-05-17 21:42 7096在书上看到一个这样的例子, 采用最简便的方式把一串字符串反转过 ... -
java 打开IE
2012-05-23 22:14 1303Runtime.getRuntime().exec(" ...
相关推荐
可能还需要添加权限,如读取网络数据,以便在加载菜单内容时获取远程数据。 此外,QQ的分类菜单可能还涉及数据存储,如SQLite数据库或SharedPreferences,用于保存用户的选择或者缓存数据。数据操作通常封装在...
在Servlet或Spring MVC的Controller中,接收用户的请求,调用Service层的方法获取菜单数据,并将其存储在会话(session)或请求(request)对象中,以便JSP页面可以访问。 5. **JSP页面**: JSP页面是用户界面,...
第1章 Windows应用程序开发入门..........................................................................................16 1.1 第一个实例程序...............................................................
在本设计中,客户端应用程序会根据用户权限动态生成菜单,并根据配置加载相应的模块。 2. **业务层**:包含业务逻辑,处理用户请求,应用业务规则,但不涉及数据的读取和保存。业务层通过Remoting服务接口与客户端...
2. **Java类文件**:可能包含处理数据库操作和服务的Java类,如DAO(数据访问对象)层和Service层。 3. **配置文件**:如web.xml,用于设置Servlet和Filter等Web应用组件。 4. **CSS和JavaScript文件**:用于页面...
压缩包中的`WebViewContextMenuUtil`可能是包含上述逻辑的工具类,它封装了创建和处理WebView上下文菜单的代码,便于在多个地方复用。 通过以上步骤,我们成功地为WebView添加了一个自定义的上下文菜单,其中包括...
这通常是通过角色-菜单关联关系来实现的,用户登录后根据其角色加载相应的菜单,实现权限控制。 "系统用户发送信息"功能,可能指的是邮件或者短信通知服务,用于向用户发送验证码、通知等信息。在SpringBoot中,...
4. 实现Service层,封装业务逻辑,调用Mapper接口查询数据。 5. 前端构建HTML页面,使用Ajax监听选择框的change事件,发送请求。 6. 响应后端返回的数据,前端动态更新下拉框选项。 在实际开发中,可能还需要考虑...
3. 分别封装了模型层、控制层、业务逻辑层和数据持久层的通用操作模块,层次分明,大大减少代码冗余,二次开发效率高。 4. 系统稳定性好,支持大并发。 二、主要功能: 1. 采用 ExtJS 4.2.1.883 无限制版本,放心...
在这个特辑中,我们可能涵盖了各种JavaScript特效的实现方法,包括但不限于动画、滑动门、下拉菜单、轮播图、图片懒加载等。 1. **动画效果**:JavaScript可以创建平滑的动画效果,通过改变元素的位置、大小、透明...
6. 异常处理:ExceptionCode和服务层异常ServiceException用于统一异常信息的管理和抛出。 7. 二级缓存管理:CacheFactory处理Ehcache缓存的创建和管理。 8. 工具类:系统内还包含多种工具类,以满足各种辅助功能...
EasyUI的组件通过AJAX与后端Controller进行通信,动态加载和更新数据。 6. **配置文件**:包括Spring的配置文件(如spring-context.xml),MyBatis的配置文件(mybatis-config.xml)和数据库连接配置文件等,这些...
**5.5 开始菜单与IE浏览器中的OEM信息加载** - **开始菜单**: 显示自定义的OEM信息。 - **IE浏览器**: 在IE浏览器中加载OEM信息。 **5.6 其他个性化** - **桌面图标**: 更改桌面图标。 - **系统声音**: 更改系统...
当进入index.html文件的时候就开始运行原生的JS,步骤是先加载配置文件,jPushConfig.xml 然后依次加载文档中service节点下的每一个节点文件,都是同步加载,加载完成一个后再加载另一个,这也就是进度条的实现方法...
在论坛项目中,jQuery可能被用来实现页面动态加载、表单验证、滑动效果等功能,提高用户交互性。 项目可能包含以下部分: - `struts.properties` 和 `struts.xml`:Struts2的核心配置文件,定义了Action和结果页面...
4. **JavaScript**:在前端源码中,JavaScript用于实现交互性和动态功能,如表单验证、滑动效果、下拉菜单等。现代JavaScript库和框架,如jQuery、Vue.js、React.js或Angular.js,可以帮助开发者更高效地编写代码。 ...
9.6.2 动态增加、删除、设置菜单及菜单项 274 9.6.3 菜单消息处理 274 9.7 对话框 275 9.7.1 创建对话框 275 9.7.2 对话框消息处理函数 276 第10章 系统信息的管理 277 10.1 Windows系统信息 277 ...
3. 实现Service层,封装业务逻辑,利用Hibernate操作数据库。 4. 在前端页面使用EasyUI的DateGrid,设置数据源和列定义,与后台Action进行Ajax通信获取数据。 5. 考虑到性能和用户体验,可能需要对DateGrid进行优化...
在编码实现过程中,SpringBoot的Controller层处理HTTP请求,Service层封装业务逻辑,Repository层负责数据持久化。Vue.js则在前端通过axios库发送AJAX请求,获取后端数据,渲染视图。同时,为了保证数据传输的安全性...