需求分析:
实现已给界面的云盘的注册,登录功能,要求功能所需要的表全都放在Hbase中。
登录注册界面:
设计表:
根据登录,注册界面和需求分析,我们设计出所需要的表
1.表gid:为计数器,每注册一个用户其gid列中的值就会加1,作用是生成其他行所需id。
2.表user_id:是id和用户名的映射,作用是当判断是否正确登录时,我们通过用户所输入的用户名,去匹配其对应id,然后通过id去id_user表中取其对应的pwd,然后与用户输入的密码对比,判断密码是否正确。
3.表id_user:存储用户的所有信息
model层:
声明所有实体及其get,set方法
package com.yunpan.bean;
public class UserBean {
private Long id;
private String pwd;
private String name;
private String email;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
Dao层:
虽然用到的表并不多,列和行管理起来不复杂,但是为了以后当表多起来后,尽量避免表列行的名字书写错误,降低其易错性,我们将所有的表名,列族名,列名,行名放到一个常量管理的类中,统一管理(定义类名为Constants)
package com.yunpan.util;
public class Constants {
public static final String SESSION_USER_BEAN = "userBean";
//定义hbase中用到的表
public static final String HBASE_TABLE_GID = "gid";
public static final String HBASE_TABLE_USER_ID = "user_id";
public static final String HBASE_TABLE_ID_USER = "id_user";
//定义列族
public static final String HBASE_FAMILY_GID_GID = "gid";
public static final String HBASE_FAMILY_USER_ID_ID = "id";
public static final String HBASE_FAMILY_ID_USER_USER = "user";
//定义行健
public static final String HBASE_ROW_KEY_GID_GID = "gid";
public static final String HBASE_ROW_KEY_USER_ID_NAME = "name";
public static final String HBASE_ROW_KEY_ID_USER_ID = "id";
//定义列
public static final String HBASE_COLUMN_GID_GID = "gid";
public static final String HBASE_COLUMN_USER_ID_ID = "i