⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 permissiondaohibernate.java

📁 菲律宾的一个大学的图书管理系统 spring+hibernate+velocity
💻 JAVA
字号:
/*
 * 创建日期 2005-4-11
 */
package biz.bluesky.pts.service.dao.impl;

import java.util.List;

import org.springframework.orm.ObjectRetrievalFailureException;
import org.springframework.orm.hibernate.support.HibernateDaoSupport;
import org.springframework.dao.InvalidDataAccessApiUsageException;

import biz.bluesky.pts.model.TPermission;
import biz.bluesky.pts.service.dao.IPermissionDAO;
import java.sql.*;

import net.sf.hibernate.*;

public class PermissionDAOHibernate extends BaseDAOHibernate implements
        IPermissionDAO {

    //查询所有的权限
    public List findPermissions() {
        return getHibernateTemplate().find("from TPermission");
    }

    //根据编号查询权限
    public TPermission findPermission(int permissionId) {
        TPermission permission = (TPermission)getHibernateTemplate().get(TPermission.class,new Integer(permissionId));
        
        if(permission == null) {
            throw new ObjectRetrievalFailureException(TPermission.class,new Integer(permissionId));
        }
        
        return permission;
    }

    //根据权限名称查询权限
    public TPermission findPermission(String permissionName) {
        List list = getHibernateTemplate().find("from TPermission p where p.name=?",permissionName);
        
        if(list.size() < 1) {
            return null;
        }
        else {
            return (TPermission)list.get(0);
        }
    }

    //根据权限的编号查询子权限
    public List findChildPermissions(int parentId) {      
        return getHibernateTemplate().find("from TPermission p where p.parentId=?",new Integer(parentId));      
    }

    //查询角色所拥有的权限
    public List findPermissionsByRole(int roleId) {        
        StringBuffer sb = new StringBuffer(100);
        
        sb.append("from TPermission permissions where permissions.permissionId in ");
        sb.append("(select rp.permissionId from TRolePermission rp where rp.roleId=");
        sb.append(roleId);
        sb.append(" )");
        
        return getHibernateTemplate().find(sb.toString());   
    }
    
    //查询角色不具备的权限
    public List findNotPermissionsByRole(int roleId) {
        StringBuffer sb = new StringBuffer(100);
        
        sb.append("from TPermission permissions where permissions.permissionId not in ");
        sb.append("(select rp.permissionId from TRolePermission rp where rp.roleId=");
        sb.append(roleId);
        sb.append(" )");
        
        return getHibernateTemplate().find(sb.toString());
    }
    
    public boolean findPermission(int userID,String permission) {
        boolean value = false;
        try {
            Session session = getHibernateTemplate().getSessionFactory().openSession();
            Connection conn = null;
            PreparedStatement pstmt = null;
            ResultSet rs = null;
            conn = session.connection();
            
            permission = permission+"%";
            
            pstmt = conn.prepareStatement("select * from get_permission("+userID+",'"+permission+"')");
            rs = pstmt.executeQuery();
            if (rs.next()){
               value = rs.getBoolean(1);           
            }
            
            rs.close();
            pstmt.close();
            conn.close();
        }
        catch(Exception excp) {
            throw new InvalidDataAccessApiUsageException("API Not Found.");
        }
        
        return value;        
    }
    
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -