为了账号安全,请及时绑定邮箱和手机立即绑定

View层代码问题,急求解答

   下面是我写的view代码,QUERYBYNAME根据姓名查看员工信息和 SEARCH查询员工信息(根据姓名、科室)都无法达到预期。  QUERYBYNAME在输入姓名后,程序无任何输出。SEARCH方法只根据第二个条件,科室来查找。求解答。                                                                                                                                                                public class View {
 public static final String CONTEXT="欢迎来到支撑网测评中心,下面是功能列表: \n"+
   "[MAIN/M]:主菜单\n"+
   "[QUERY/Q]:查看全部员工信息\n"+
   "[QUERYBYNAME/QU]:根据姓名查看员工信息\n"+
   "[ADD/A]:添加员工信息\n"+
   "[UPDATE/U]:更新员工信息\n"+
   "[DELEIE/D]:删除员工信息\n"+
   "[SEARCH/S]:查询员工信息(根据姓名、科室)\n"+
   "[EXIT/E]:退出测评中心\n"+
   "[BREAK/B]:退出当前功能,返回主菜单";
 public static final String OPERATION_MAIN="MAIN";
 public static final String OPERATION_QUERY="QUERY";
 public static final String OPERATION_QUERYBYNAME="QUERYBYNAME";
 public static final String OPERATION_QUERYBYKESHI="QUERYBYKESHI";
 public static final String OPERATION_ADD="ADD";
 public static final String OPERATION_UPDATE="UPDATE";
 public static final String OPERATION_DELETE="DELETE";
 public static final String OPERATION_SEARCH="SEARCH";
 public static final String OPERATION_EXIT="EXIT";
 public static final String OPERATION_BREAK="BREAK";
 public static void main(String[] args) {
  System.out.println(CONTEXT);
  //保持程序持续运行
  Scanner scan=new Scanner(System.in);
  User user=new User();
  UserAction action=new UserAction();
  String prenious=null;
  Integer step=1;
  while(scan.hasNext()){
   String in=scan.next().toString();
   if(OPERATION_EXIT.equals(in.toUpperCase())||OPERATION_EXIT.substring(0, 1).equals
     (in.toUpperCase())){
    System.out.println("您已成功退出测评中心信息功能");
    break;
   }else if(OPERATION_QUERY.equals(in.toUpperCase())||OPERATION_QUERY.substring(0, 1).equals
     (in.toUpperCase())){
    try {
     List<User> list=action.query();
     for (User u : list) {
      System.out.println("ID:"+u.getId()+", 姓名:"+u.getName()+", 性别:"+u.getSex()+", 科室:"+u.getKeshi()
        +", 集团号:"+u.getJituanhao()+", 职位:"+u.getZhiwei()+";");
     }
    } catch (Exception e) {
     e.printStackTrace();
    }
   }else if(OPERATION_QUERYBYNAME.equals(in.toUpperCase())||OPERATION_QUERYBYNAME.substring(0, 2).equals
     (in.toUpperCase())){
     prenious=OPERATION_QUERYBYNAME;
    if(1==step){
     System.out.println("请输入要查询员工【姓名】:");
    }else if(2==step){
    try {
     System.out.println("22");
     List<User> list=action.queryByName(in.toString());
     for(int i=0;i<list.size();i++){
      System.out.println(list.get(i).toString());
     } 
    /* for (User u : list) {
      System.out.println("ID:"+u.getId()+", 姓名:"+u.getName()+", 性别:"+u.getSex()+", 科室:"+u.getKeshi()
        +", 集团号:"+u.getJituanhao()+", 职位:"+u.getZhiwei()+";");
     }   */
    } catch (Exception e) {
     e.printStackTrace();
     System.out.println("该员工信息不存在");
     }
     }
    if(OPERATION_QUERYBYNAME.equals(prenious)){
     System.out.println(step);
     step++;
    }
   }else if(OPERATION_SEARCH.equals(in.toUpperCase())||OPERATION_SEARCH.substring(0, 1).equals
     (in.toUpperCase())||OPERATION_SEARCH.equals(prenious)){
      prenious=OPERATION_SEARCH;
     List<Map<String, Object>> params=new ArrayList<Map<String, Object>>();
     Map<String, Object> param1=new HashMap<String, Object>();
     if(1==step){
      
      System.out.println("请输入要查询员工【姓名】:");
     }
     else if(2==step){
      param1.put("name","name" );
      param1.put("rela", "like");
      param1.put("value", "'%"+in+"%'");
      params.add(param1);
      System.out.println("请输入要查询员工【科室】:");
     }
     else if(3==step){
      System.out.println(step);
      Map<String, Object> param2=new HashMap<String, Object>();
      param2.put("name","keshi" );
      param2.put("rela", "like");
      param2.put("value", "'%"+in+"%'");
      params.add(param2);
      List<User> list;
      try {
       list = action.query(params);
       for (User u : list) {
        System.out.println("ID:"+u.getId()+", 姓名:"+u.getName()+", 性别:"+u.getSex()+", 科室:"+u.getKeshi()
          +", 集团号:"+u.getJituanhao()+", 职位:"+u.getZhiwei()+";");
       }
      } catch (Exception e) {
       e.printStackTrace();
       System.out.println("无符号条件的员工信息!");
      }
     }
     if(OPERATION_SEARCH.equals(prenious)){
      System.out.println(step);
      step++;
     }
     
   /*  for(int i=0;i<list.size();i++){
      System.out.println(list.get(i).toString());
     }   */
     
   }
else if(OPERATION_ADD.equals(in.toUpperCase())||OPERATION_ADD.substring(0, 1).equals
     (in.toUpperCase())||OPERATION_ADD.equals(prenious)){
    prenious=OPERATION_ADD;
    if(1==step){
     System.out.println("请输入员工【姓名】:");
    }
    else if(2==step){
     user.setName(in);
     System.out.println("请输入员工【性别】:");
    }
    else if(3==step){
     user.setSex(in);
     System.out.println("请输入员工【科室】:");
    }
    else if(4==step){
     user.setKeshi(in);
     System.out.println("请输入员工【集团号】:");
    }
    else if(5==step){
     user.setJituanhao(Integer.valueOf(in));
     System.out.println("请输入员工【职位】,若是普通员工,写所属小组:");
    }
    else if(6==step){
     user.setZhiwei(in);
     try {
      action.add(user);
      System.out.println("新增员工信息成功!");
     } catch (Exception e) {
      e.printStackTrace();
      System.out.println("新增员工信息失败!");
     }
    }
    if(OPERATION_ADD.equals(prenious)){
     step++;
    }
   }
   
  }
 }
}

正在回答

3 回答

update是跟add差不多的,要用step,search,应该不用这样写


0 回复 有任何疑惑可以回复我~

我非常有耐心的把你的代码复制到我eclipse里,然后排版创建类什么的,我自己都佩服自己的耐心。

按姓名查询实际上应该就只有1步,就是根据输入的字符串名字,直接输出结果。

你这里写成了2步,实际执行的时候,第一步执行的时候提示用户输入要查询的名字。我们比如随便打个abc,然后程序接着会执行你的   

if(OPERATION_QUERYBYNAME.equals(prenious)){
     System.out.println(step);
     step++;
    }

这里会输出一个数字1,然后又返回while(in.hasNext())这里了,一直等用户输入信息。

2 回复 有任何疑惑可以回复我~
#1

慕斯卡4106679

请问下,最后一个ELSE IF else if(OPERATION_ADD.equals(in.toUpperCase())||OPERATION_ADD.substring(0, 1).equals (in.toUpperCase())||OPERATION_ADD.equals(prenious)){ prenious=OPERATION_ADD; 如果到最后,所有step都不满足,程序是不是自动会停止呢?
2015-12-27 回复 有任何疑惑可以回复我~
#2

yuming2013 回复 慕斯卡4106679

不会,你可以继续输入你要进行的操作,知道你输入的操作为exit的时候程序才会跳出while循环
2016-02-28 回复 有任何疑惑可以回复我~

为什么没有人回答。最后的课程太赶了,很多功能都没实现。来看课程的人基础都不好,要不然也不会看视频了!!!

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

View层代码问题,急求解答

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信