/**
 * 
 */
package Boundary;import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.Iterator;
import DB.Hibernate.User.Change_Password;
import DB.Hibernate.User.Change_UserName;
import DB.Hibernate.User.Select_User;
import DB.Hibernate.User.Update_User;
import DB.Hibernate.User.User;
import DB.Hibernate.User_History.Insert_UserHistory;
import DB.Hibernate.User.Update_Status;
import DB.Hibernate.User.Check_Password;/**
 * @author waxiao-n
 *
 */
public class Customer implements Users {
private Timestamp ts=new Timestamp(System.currentTimeMillis());
private String dateStr=ts.toString();  public Customer() {
super();
} public int LogOn(String UserID, String UserName, String Password)
throws Exception {
Iterator it=null;
String[] User=new String[10];
User users=null;
Select_User select_user=new Select_User();
Update_Status update_status=new Update_Status();
Insert_UserHistory insert_userhistory=new Insert_UserHistory();
Check_Password check_password=new Check_Password();

try{
User[0]=UserID;
User[1]=UserName;
User[2]=Password;

if (check_password.Check_Password(User)==0){
System.out.println("Incorrected password!");
return 0;
}

it=select_user.Select_User(User); if (it==null)throw new SQLException();
if (it.hasNext()){
users=(User)it.next();
if (users.getStatus().equals("0")==true){
System.out.println("This UserID is useless!");
return 0;
}
if (users.getStatus().equals("1")==true){
System.out.println("This User has already logged on!");
return 0;
}

User[0]=UserID;
User[1]=UserName;
User[2]="1";
if (update_status.Update_Status(User)==0)throw new SQLException();
User[0]=UserID;
User[1]=UserName;
User[2]="1";
User[3]=dateStr;
if (insert_userhistory.Insert_UserHistory(User)==0)throw new SQLException();
}else{
throw new SQLException();
}
}catch(SQLException ex){
System.out.println("User:[ID:"+UserID+",UserName:"+UserName+"] log on failure!");
return 0;
}
System.out.println("User:[ID:"+UserID+",UserName:"+UserName+"] log on successfully!");
return 1;
} /* (non-Javadoc)
 * @see Boundary.User#LogOff(java.lang.String, java.lang.String)
 */
public int LogOff(String UserID, String UserName) throws Exception {
Iterator it=null;
String[] User=new String[10];
User users=null;
Select_User select_user=new Select_User();
Update_Status update_status=new Update_Status();
Insert_UserHistory insert_userhistory=new Insert_UserHistory();
try{
User[0]=UserID;
User[1]=UserName;
it=select_user.Select_User(User);

if (it==null)throw new SQLException();
if (it.hasNext()){
users=(User)it.next();
if (users.getStatus().equals("0")==true){
System.out.println("This UserID is useless!");
return 0;
}
if (users.getStatus().equals("2")==true){
System.out.println("This User has already logged off!");
return 0;
}
User[0]=UserID;
User[1]=UserName;
User[2]="2";
if (update_status.Update_Status(User)==0)throw new SQLException();
User[0]=UserID;
User[1]=UserName;
User[2]="2";
User[3]=dateStr;
if (insert_userhistory.Insert_UserHistory(User)==0)throw new SQLException();
}else{
throw new SQLException();
}
}catch(SQLException ex){
System.out.println("User:[ID:"+UserID+",UserName:"+UserName+"] log off failure!");
return 0;
}
System.out.println("User:[ID:"+UserID+",UserName:"+UserName+"] log off successfully!");
return 1;
} /* (non-Javadoc)
 * @see Boundary.User#Disp_User_Status(java.lang.String, java.lang.String)
 */
public void Disp_User_Status(String UserID, String UserName)
throws Exception {
// TODO Auto-generated method stub

// try{
//// String SQL="select * from User where UserID=\""+UserID+"\" and UserName=\""+UserName+"\"";
// rs=db.Display(SQL);
// if (rs==null)throw new SQLException();
//
// while (rs.next()){
// Email=rs.getString("Email");
// Phone=rs.getString("Phone");
// Status=rs.getString("Status");
// Description=rs.getString("Description");
// }
//
// }catch(SQLException ex){
// System.out.println("Can not get the information of UserID:"+UserID+",UserName:"+UserName+"!");
// rs.close();
// db.Close();
// }
// System.out.println("User:[ID:"+UserID+",UserName:"+UserName+",Email:"+Email+",Phone:"+Phone+",Status:"+Status+",Description:"+Description+"]");
// rs.close();
// db.Close();
Select_User a=new Select_User();
String[] b=new String[10];
b[0]="c";
b[1]="b";
Iterator it=a.Select_User(b);

while (it.hasNext()){
User user=(User)it.next();
System.out.println("UserID:"+user.getId().getUserId()+";UserName:"+user.getId().getUserName()+";Privilege:"+user.getPrivilege()+";Email:"+user.getEmail()+"Phone:"+user.getPhone()+"Status:"+user.getStatus());
} } /* (non-Javadoc)
 * @see Boundary.User#Update_User(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)
 */
public int Update_User(String UserID, String UserName, String Password,
String Privilege, String Email, String Phone, String Status,
String Description) throws SQLException {
// TODO Auto-generated method stub
String[] User=new String[10];
Update_User update_user=new Update_User();

try{
User[0]=UserID;
User[1]=UserName;
User[2]=Password;
User[3]=Privilege;
User[4]=Email;
User[5]=Phone;
User[6]=Status;
User[7]=Description;

if (update_user.Update_User(User)==1) throw new SQLException();
return 0;

}catch (SQLException ex){

}finally{

}
return 1;
} public int Change_Password(String UserID,String UserName,String Old_Password,String New_Password){
String[] User=new String[10];
Change_Password change_password=new Change_Password();
Check_Password check_password=new Check_Password();

User[0]=UserID;
User[1]=UserName;
User[2]=Old_Password;
User[3]=New_Password;

try{
if (check_password.Check_Password(User)==1)throw new Exception();
User[2]=User[3];
if (change_password.Change_Password(User)==1)throw new Exception();
}catch(Exception ex){
System.out.println("Password changed failure!");
return 1;
}
System.out.println("Password changed successfully!");
return 0;
} public int Change_UserName(String UserID,String UserName,String Password,String New_UserName){

String[] User=new String[10];
Check_Password check_password=new Check_Password();
Change_UserName change_username=new Change_UserName();

User[0]=UserID;
User[1]=UserName;
User[2]=Password;
User[3]=New_UserName;

try{
if (check_password.Check_Password(User)==1)throw new Exception();
if (change_username.Change_UserName(User)==1)throw new Exception();
}catch(Exception ex){
System.out.println("UserName changed failured!");
}
System.out.println("UserName changed successfully!");
return 0;
}

public static void main(String[] args) {
Customer a=new Customer();
String[] b=new String[10];
b[0]="c";
b[1]="b";
b[2]="a";
try {
a.LogOn("a","b","c");
a.LogOff("a","b");
} catch (Exception e) {
e.printStackTrace();
}

}}

解决方案 »

  1.   

    相关表结构:
    cd binmysql -u root -pcreate database Home_Auto_Sys;use Home_Auto_Sys;create table User (UserID char(20) not null,
    UserName char(40) not null,
    Password char(40),
    Privilege char(40),
    Email char(40),
    Phone char(20),
    Status char(20),
    Description char(100),
    primary key (UserID,UserName),
    index indx (UserID,UserName)
    );create table user_history (UserID char(20) not null,
    UserName char(40) not null,
    Logon_off char(20),
    TimeStamp char(40)
    );
      

  2.   

    try{
    Session session=HibernateSessionFactory.currentSession();
    Transaction tx = session.beginTransaction();
    session.save(uh);
    session.flush();
    tx.commit();
    System.out.println("Save successfully.");
    i=1;
    }catch (HibernateException e){
    System.out.println("Save failed.");
    i=0;
    }finally{
      

  3.   

    session.flush()强制提交数据进入数据库,每次存取数据最好都加上这句话。