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

📄 logindao.java

📁 J2ee开发的 人事管理系统 使用oracle数据库 myeclips平台开发
💻 JAVA
字号:
package com.galaxy.dao;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.HashMap;
import com.galaxy.db.ConnectDB;

public class LoginDao extends ConnectDB {
	
	
	/**
	 *@ 根据用户信息,把用户的ID,姓名,登陆名,角色ID,是否是管理员,能访问的系统模块,
	 *存入一个HashMap的结构体里
	 *结构体的key值分别是:U_ID, U_Name, U_LoadName, U_RoleID, U_IsAdmin, &
	 * 和数据库中存入的各模块名
	 *模块名(KEY)对应的值为'0,1','0'表示不能访问,'1'表示能访问
	 */	
	public HashMap getUserPriorityInfo(Long userID)
	{
		Long userRoleID = 0L;
		HashMap upiHashMap = new HashMap();
		
		/**
		 * 查询用户的ID,真名,登录名,角色ID,角色名字
		 */		
		String sql = "select  UR.UI_ID,UR.UI_REALNAME,UR.UI_LOADNAME, " +
				"UR.RI_ID, RL.RI_NAME from USER_INFO UR, ROLE_INFO RL" +
				" where UR.RI_ID = RL.RI_ID and ur.ui_id = ?";
		
		super.openDBConnection();
		try {
			PreparedStatement pst = dbConnection.prepareStatement(sql);
			pst.setLong(1, userID);
			
			dbResultSet = pst.executeQuery();
			while(dbResultSet.next())
			{
				upiHashMap.put("U_ID", dbResultSet.getLong("UI_ID"));
				upiHashMap.put("U_Name", dbResultSet.getString("UI_REALNAME"));
				upiHashMap.put("U_LoadName", dbResultSet.getString("UI_LOADNAME"));
				upiHashMap.put("U_RoleID", dbResultSet.getLong("RI_ID"));
				
				//获取用户的角色ID,方便下一步查询可访问的模块
				userRoleID = dbResultSet.getLong("RI_ID");
				
				String role = dbResultSet.getString("RI_NAME");
				if(role != null && !role.equals(""))
				{
					if(role.equals("管理员")){
						upiHashMap.put("U_IsAdmin", "1");
					}else{
						upiHashMap.put("U_IsAdmin", "0");
					}
				}else{
					upiHashMap.put("U_IsAdmin", "-1");
				}				
			}	
		} catch (SQLException e) {
			e.printStackTrace();
		}
		

		/**
		 * 初始化HashMap里中的模块访问值,所有值都设置为‘0’,不能访问
		 */
		sql = "select * from power_info";
		try {
			dbResultSet = dbStatement.executeQuery(sql);
			while(dbResultSet.next())
			{
				upiHashMap.put(dbResultSet.getString("PI_NAME"), "0");
			}
		} catch (SQLException e1) {
			e1.printStackTrace();
		}		
		
		/**
		 * @ 由于用户角色可以访问多个模块,所以查询一个用户的可访问模块时,
		 * 就可以按照用户的角色ID来查询可访问模块;
		 * 可访问的模块,其Value值设置为“1” 
		 */
		sql = "select  RL.RI_ID, PW.PI_NAME" +
				" from ROLE_INFO RL, RI_PI_RS RP, POWER_INFO PW " +
				"where  RL.RI_ID = RP.RI_ID and RP.PI_ID = PW.PI_ID" +
				" and RL.Ri_Id = " + userRoleID;
		try {
			dbResultSet = dbStatement.executeQuery(sql);
			while(dbResultSet.next())
			{
				upiHashMap.put(dbResultSet.getString("PI_NAME"), "1");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		super.closeDBConnection();
		return upiHashMap;
	}

	/**
	 * 测试上述函数使用
	 * @param Args
	 */
	public static void main(String [] Args)
	{
		LoginDao ld = new LoginDao();
		HashMap hm = new HashMap();
		hm = ld.getUserPriorityInfo(301L);
		
		ld.openDBConnection();
		String sql = "select pi_name from power_info";
		try {
			ld.dbResultSet = ld.dbStatement.executeQuery(sql);
			while(ld.dbResultSet.next())
			{
				System.out.println(ld.dbResultSet.getString("pi_name") + ":"+ 
				(String)hm.get(ld.dbResultSet.getString("pi_name")));
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		ld.closeDBConnection();
		System.out.println("HashMap:" + hm.size());
		
	}
}

⌨️ 快捷键说明

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