利用hashtable模拟实现权限验证(同map思想-->只能有一个用户名,可重复密码)以及增删查改操作

package mapPractice;

import java.util.Enumeration;
import java.util.Hashtable;

/**
 * 
 * @Detail :利用hashtable实现权限验证(同map思想-->只能有一个用户名,可重复密码)以及增删查改操作
 * @Author: 韩庆(QQ:haw_king@foxmail.com)
 * @E-mail: IsaidIwillgoon@gmail.com
 * @Date: 2012-11-27
 * @Time: 下午8:58:51
 * 
 */
public class HashForRole {

	private static Hashtable<String, String> rightTable = new Hashtable<String, String>();

	/**
	 * 初始化
	 */
	public void init() {
		String[] nameList = { "hank", "hanq", "laoH", "laogao" };
		String[] passwordList = { "123456", "1314666", "password",
				"admin_password" };
		for (int i = 0; i < nameList.length; i++) {
			rightTable.put(nameList[i], passwordList[i]);
		}
		System.out.println("初始化了rightTable.");
	}

	/**
	 * 插入/新增操作
	 * 
	 * @param name
	 * @param password
	 */
	public void insert(String name, String password) {
		// 如果用户名不存在
		if (rightTable.get(name) == null && null != password) {
			rightTable.put(name, password);
			System.out.println("做了插入操作,将用户名:" + name + ",密码:" + password
					+ "插入.");
		} else {
			if (null == password) {
				System.out.println("密码不可为空!");
			} else {
				System.out.println("用户名" + name + ",已存在,请更换名称!");
			}
		}
	}

	/**
	 * 更新用户
	 * 
	 * @param name
	 *            用户名
	 * @param password
	 *            密码
	 */
	public void update(String name, String password) {
		// boolean flag = rightTable.containsKey(name);
		if (rightTable.get(name) == null) {
			System.out.println("无此用户!修改失败");
		} else {
			String pd = rightTable.get(name);
			rightTable.put(name, password);
			System.out.println("修改了用户:" + name + ",原密码为:" + pd + ",现密码变更为:"
					+ password);
		}
	}

	/**
	 * 删除用户名
	 * 
	 * @param name
	 *            用户名
	 */
	public void delete(String name) {
		// 如果该用户存在
		if (rightTable.containsKey(name)) {
			rightTable.remove(name);
			System.out.println("删除了用户:" + name);
		} else {
			System.out.println("该用户已被删除,或不存在!");
		}
	}

	/**
	 * 得到用户权限
	 * 
	 * @param name
	 *            用户名
	 * @param password
	 *            密码
	 * @return 用户密码
	 */
	public Boolean getRight(String name, String password) {
		if (password == rightTable.get(name)) {
			System.out.println("得到用户权限为-->" + name + ":" + password);
			return true;
		} else {
			System.out.println("用户名或密码错误");
			return false;
		}
	}

	/**
	 * 遍历查询rightTable所有元素
	 */
	public void query() {
		Enumeration<String> allKey = rightTable.keys();
		System.out.println("rightTable内的数据为:");
		while (allKey.hasMoreElements()) {
			String key = allKey.nextElement().toString();
			System.out.print(key + ":" + rightTable.get(key) + "  ");
		}
		System.out.println();// 换行
	}

	/**
	 * 仅用于测试 是否包含name
	 * 
	 * @param name
	 * @return
	 */
	public boolean find(String name) {
		return rightTable.containsKey(name);// 包含name返回true.
	}

	public static void main(String[] args) {
		// 测试程序
		HashForRole hfr = new HashForRole();
		hfr.init();// 初始化
		hfr.query();// 遍历查看初始化后表内数据,与执行以下操作后遍历对照。
		Boolean rolePassword = hfr.getRight("hank", "123456");
		if (rolePassword) {
			hfr.insert("newRole", "newPassword");// 模拟添加
		}
		System.out.println("----test one-----");
		Boolean rolePassword2 = hfr.getRight("newRole", "newPassword");
		if (rolePassword2) {
			hfr.update("newRole", "oldPassword");// 模拟修改
		}
		System.out.println("----test tow----");
		Boolean rolePassword3 = hfr.getRight("newRole", "oldPassword");
		System.out.println("----test three----");
		if (rolePassword3) {
			hfr.delete("hank");// 模拟删除
			hfr.query();// 遍历查询结果集
		}
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值