📄 logindao.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 + -