中国开发网: 论坛: 程序员情感CBD: 贴子 379981
老玉米
class Management
package bjepb.promng;

import bjepb.promng.DBConnhelper;
import com.softtech.jdbc.SQLResults;
import com.softtech.jdbc.SQLExecutor;
import java.util.HashMap;
import java.util.Iterator;

public class Management {

private static Management mng = null;

private static final String sqlEmp = "SELECT * FROM EMPLOYEEINFO;";
private static final String sqlExpAdd =
"INSERT INTO EMPLOYEEINFO(LOGINNAME,REALNAME,BIRTHYEAR,BIRTHMONTH,BIRTHDATE," +
"TITLE,SPECIALTY,POSITION,OFFICENUMBER,HOMENUMBER,CELLNUMBER,UNITNAME," +
"ACTIVE,ISADMIN,CANLOGIN,PASSWORD) " +
"VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);";

private static final String sqlExpModify =
"UPDATE EMPLOYEEINFO SET REALNAME=?,BIRTHYEAR=?,BIRTHMONTH=?,BIRTHDATE=?," +
"TITLE=?,SPECIALTY=?,POSITION=?,OFFICENUMBER=?,HOMENUMBER=?,CELLNUMBER=?,UNITNAME=?," +
"ACTIVE=?,ISADMIN=?,CANLOGIN=?,PASSWORD=? where LOGINNAME=?";

private HashMap<String,Employee> employees = null;

public void PrintEmployees()
{
System.out.println("employee count : " + employees.size());

Iterator it = employees.values().iterator();

while (it.hasNext())
{
Employee employee = (Employee)it.next();
System.out.println("LoginName=[" + employee.getLoginName()
+ "] RealName=[" + employee.getRealName() + "]");
}
}

public int getEmployeesCount()
{
return employees.size();
}

private Management()
{
SQLResults rs = DBConnhelper.excute(sqlEmp);
employees = new HashMap<String,Employee>(rs.getRowCount());
Employee employee = null;
for (int i=0; i <rs.getRowCount(); i++)
{
employee = new Employee(rs.getString(i, "LOGINNAME"));
employee.setRealName(rs.getString(i, "REALNAME"));
employee.setBirthYear(rs.getInt(i, "BIRTHYEAR"));
employee.setBirthMonth(rs.getInt(i, "BIRTHMONTH"));
employee.setBirthDate(rs.getInt(i, "BIRTHDATE"));
employee.setTitle(rs.getString(i, "TITLE"));
employee.setSpecialty(rs.getString(i, "SPECIALTY"));
employee.setPosition(rs.getString(i, "POSITION"));
employee.setOfficeNumber(rs.getString(i, "OFFICENUMBER"));
employee.setHomeNumber(rs.getString(i, "HOMENUMBER"));
employee.setCellNumber(rs.getString(i, "CELLNUMBER"));
employee.setUnitName(rs.getString(i, "UNITNAME"));
employee.setActive(rs.getInt(i, "ACTIVE"));
employee.setIsAdmin(rs.getInt(i, "ISADMIN"));
employee.setCanLogin(rs.getInt(i, "CANLOGIN"));
employee.setPassword(rs.getString(i, "PASSWORD"));

employees.put(employee.getLoginName(), employee);

System.out.println(employee.getLoginName());
}

}

public synchronized static Management getManagement()
{
if (mng == null){
mng = new Management();
}
return mng;
}

public Employee getEmployee(String LoginName) throws Exception
{
Employee employee = employees.get(LoginName);
if (employee != null){
return employee;
}
else{
throw new Exception(LoginName.concat(" doesn't exist!") );
}
}

public Employee addEmployee(Employee employee) throws Exception
{
if (employees.get(employee.getLoginName()) == null){
//append to database
SQLExecutor sqlExec = DBConnhelper.getSqlExec();

sqlExec.addParam(employee.getLoginName());
sqlExec.addParam(employee.getRealName());
sqlExec.addParam(employee.getBirthYear());
sqlExec.addParam(employee.getBirthMonth());
sqlExec.addParam(employee.getBirthDate());
sqlExec.addParam(employee.getTitle());


sqlExec.addParam(employee.getSpecialty());
sqlExec.addParam(employee.getPosition());
sqlExec.addParam(employee.getOfficeNumber());
sqlExec.addParam(employee.getHomeNumber());
sqlExec.addParam(employee.getCellNumber());
sqlExec.addParam(employee.getUnitName());
sqlExec.addParam(employee.getActive());
sqlExec.addParam(employee.getIsAdmin());
sqlExec.addParam(employee.getCanLogin());
sqlExec.addParam(employee.getPassword());


sqlExec.runQuery(sqlExpAdd);

//sqlExec.runQuery(sqlExpAdd);

int numRecordUpdated = sqlExec.getNumRecordsUpdated();

sqlExec.releaseConnection();

if (numRecordUpdated== 1){
synchronized(employees){
employees.put(employee.getLoginName(),employee);
}
return employee;
}
else{
throw new Exception(employee.getLoginName().concat(" add to database error!"));
}

}
else{
throw new Exception(employee.getLoginName().concat(" is already exist!"));
}


}

public Employee modifyEmployee(Employee employee) throws Exception
{
if (employees.get(employee.getLoginName()) == null){
throw new Exception("");
}
else{
//append to database
SQLExecutor sqlExec = DBConnhelper.getSqlExec();

sqlExec.addParam(employee.getRealName());
sqlExec.addParam(employee.getBirthYear());
sqlExec.addParam(employee.getBirthMonth());
sqlExec.addParam(employee.getBirthDate());
sqlExec.addParam(employee.getTitle());
sqlExec.addParam(employee.getSpecialty());
sqlExec.addParam(employee.getPosition());
sqlExec.addParam(employee.getOfficeNumber());
sqlExec.addParam(employee.getHomeNumber());
sqlExec.addParam(employee.getCellNumber());
sqlExec.addParam(employee.getUnitName());
sqlExec.addParam(employee.getActive());
sqlExec.addParam(employee.getIsAdmin());
sqlExec.addParam(employee.getCanLogin());
sqlExec.addParam(employee.getPassword());
sqlExec.addParam(employee.getLoginName());
sqlExec.runQuery(sqlExpModify);

int numRecordUpdated = sqlExec.getNumRecordsUpdated();

sqlExec.releaseConnection();

if (numRecordUpdated== 1){
synchronized(employees){
employees.put(employee.getLoginName(),employee);
}
return employee;
}
else{
throw new Exception("");
}

}
}
}
民主不同于专制,不需要强加于人。--- 賴斯

大道之行也,天下为公,选贤与能,讲信修睦。故人不独亲其亲,不独子其子,使老有所终,壮有所用,幼有所长,矜、寡、孤、独、废疾者,皆有所养。男有分,女有归。货恶其弃於地也,不必藏於己;力恶其不出於身也,不必为己。是故,谋闭而不兴,盗窃乱贼而不作,故外户而不闭,是谓大同。--《礼运·大同篇》

相关信息:


欢迎光临本社区,您还没有登录,不能发贴子。请在 这里登录