把員工用Set或List裝起來(lái)就行了,然后用Map,一個(gè)部門對(duì)應(yīng)一個(gè)員工集合
創(chuàng)新互聯(lián)公司專注于吉安企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站開(kāi)發(fā),商城網(wǎng)站建設(shè)。吉安網(wǎng)站建設(shè)公司,為吉安等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
建議做法如下:
第一,寫一個(gè)符合javaBean標(biāo)準(zhǔn)的實(shí)體類,類的屬性名稱和類型分別與數(shù)據(jù)庫(kù)的字段對(duì)應(yīng),并加上無(wú)參構(gòu)造方法和get、set方法;
第二,使用注解配置映射關(guān)系,用@Entity注解該類是一個(gè)實(shí)體類,用@Table(name = "表名")注解該實(shí)體類映射的表名,通過(guò)在每一個(gè)屬性的get方法上添加@Column(name = "列名")注解該屬性映射的列;
第三,配置主鍵,找出表主鍵映射的那個(gè)屬性,用@Id在該屬性的get方法上注解該屬性為Id。(根據(jù)具體需要,可能還要做一些更詳細(xì)的配置)
參考代碼如下:
import?javax.persistence.Column;
import?javax.persistence.Entity;
import?javax.persistence.Id;
import?javax.persistence.Table;
import?org.hibernate.annotations.Parameter;
/**
*?
*?用戶
*/
@Entity?//說(shuō)明該類是實(shí)體類
@Table(name?=?"USER")//說(shuō)明該類映射的是表USER
public?class?TUser?implements?java.io.Serializable?{
private?String?userID;?//?用戶id
private?String?userName;?//?用戶名稱
private?String?loginName;?//?登錄名稱
private?String?password;?//?密碼
private?Integer?status;?//?狀態(tài)
private?java.util.Date?lastLoginTime;?//?上次登錄時(shí)間
private?java.util.Date?regTime;?//?注冊(cè)時(shí)間
@Id//說(shuō)明該屬性映射的是表USER的主鍵
@Column(name?=?"UserID",?unique?=?true,?nullable?=?false)
//該屬性映射的是表USER的UserId字段,非空且唯一
public?String?getUserID()?{
return?this.userID;
}
public?void?setUserID(String?userID)?{
this.userID?=?userID;
}
@Column(name?=?"UserName")
public?String?getUserName()?{
return?userName;
}
public?void?setUserName(String?userName)?{
this.userName?=?userName;
}
@Column(name?=?"LoginName")
public?String?getLoginName()?{
return?this.loginName;
}
public?void?setLoginName(String?loginName)?{
this.loginName?=?loginName;
}
@Column(name?=?"Password")
public?String?getPassword()?{
return?this.password;
}
public?void?setPassword(String?password)?{
this.password?=?password;
}
@Column(name?=?"Status")
public?Integer?getStatus()?{
return?status;
}
public?void?setStatus(Integer?status)?{
this.status?=?status;
}
@Column(name?=?"LastLoginTime")
public?java.util.Date?getLastLoginTime()?{
return?lastLoginTime;
}
public?void?setLastLoginTime(java.util.Date?lastLoginTime)?{
this.lastLoginTime?=?lastLoginTime;
}
@Column(name?=?"RegTime")
public?java.util.Date?getRegTime()?{
return?regTime;
}
public?void?setRegTime(java.util.Date?regTime)?{
this.regTime?=?regTime;
}
@Override
public?int?hashCode()?{
int?prime?=?0;
prime?+=?this.getUserID().hashCode();
return?prime;
}
@Override
public?boolean?equals(Object?obj)?{
boolean?isEquals?=?false;
if?(obj?!=?null??this.getClass()?==?obj.getClass())?{
TUser?clazz?=?(TUser)?obj;
if?(clazz.getUserID().equals(this.getUserID()))
isEquals?=?true;
return?isEquals;
}
return?isEquals;
}
}
Session的機(jī)制(為了安全)決定了Session A不能獲得Session B的信息,即Session之間是互相隔離的.
你可以在Login的時(shí)候,將當(dāng)前登錄的用戶信息保存一份到Application中.
大致流程如下:
在Application放一個(gè)HashMapString [userName],String[SessionId] logins = new....
登錄的時(shí)候 logins.put(userName,sessionId);
權(quán)限校驗(yàn)的時(shí)候
String sessionId = logins.get(userName);
if(request.getSession().getSessionId().equals(sessionId)){
//允許繼續(xù)操作
}else{
//session.inValidate();//取消當(dāng)前session的有效期.這個(gè)方法名我記不太清楚了.
//清空session里保存的內(nèi)容,退出登錄,返回到登錄頁(yè)面.
}
退出的時(shí)候,
logins.remove(userName);
映射簡(jiǎn)稱ORMapping
說(shuō)的直白點(diǎn)就是這樣:
對(duì)象在數(shù)據(jù)庫(kù)里面保存的狀態(tài)
比如:把某對(duì)象映射到庫(kù)里,就是指把對(duì)象存儲(chǔ)到數(shù)據(jù)庫(kù)里
大概就是這個(gè)意思
如果想了解的更多.,你可以搜索 一些相關(guān)的知識(shí)
常用的JAVA映射工具如:Hibernate就是我們用的最流行的
java中操作的都是對(duì)象,一般我們創(chuàng)建一個(gè)對(duì)象,設(shè)置它的屬性,其中屬性與數(shù)據(jù)庫(kù)的實(shí)際字段對(duì)應(yīng),我們直接操作對(duì)象的屬性,就相當(dāng)與操作數(shù)據(jù)庫(kù)了,hibernate就是用的此原理做的映射