zoukankan      html  css  js  c++  java
  • 【7】JAVA---地址App小软件(AddrBusiness.class)(逻辑层)

    这个。。。没多少好解释的。。。
    表现层的增删改查的具体实现类。

    package cn.hncu.addr.business;
    
    import javax.swing.JOptionPane;
    
    import cn.hncu.addr.dao.AddrDaoFile;
    import sun.security.util.Length;
    
    public class AddrBusiness {
        //静态方法。访问的是同一个对象--也就是说就算是new这个对象,也只是引用之前的那个静态对象
        private static Object[] objs = new Object[0];
    
        private boolean save() {
            boolean result = AddrDaoFile.write(objs);
            if(!result){
                JOptionPane.showMessageDialog(null, "数据存储失败!");
                return false;
            }
    
            return true;
        }
    
    
        //判断集合是不是已经有了那个元素
        public boolean contains(Object obj){
            for(Object temp:objs){
                if(temp.equals(obj)){
                    return true;
                }
            }
            return false;
        }
    
        //添加元素,不能添加重复的元素
        public boolean add(Object obj){
            if(contains(obj)){
                return false;
            }
            Object[] temp = new Object[objs.length+1];
            System.arraycopy(objs, 0, temp, 0, objs.length);
            temp[objs.length]=obj;
            objs = temp;
            boolean result = save();
            return result;
        }
    
    
        //返回集合的所有元素
        public Object[] getAll(){
            objs = AddrDaoFile.read();
            return objs;
        }
    
        //返回集合的元素长度
        public int size(){
            return objs.length;
        }
    
        public boolean update(String oldStrAdd, String newStrAdd) {
            for(int i=0;i<objs.length;i++){
                if(((String)objs[i]).equals(oldStrAdd)){
                    objs[i] = (Object)newStrAdd;
                    boolean result = save();
                    return result;
                }
            }
            return false;
        }
    
        public boolean delete(String oldStrAdd) {
            Object[] tempObj = new Object[objs.length-1];
            int k=0;
            for(int i=0;i<objs.length;i++){
                if(!(((String)objs[i]).equals(oldStrAdd))){
                    tempObj[k++]=objs[i];
                }
            }
            objs = tempObj;
            boolean result = save();
            return result;
        }
    
        public Object[] query(String[] strsQu) {
            Object[] tempObjs = new Object[objs.length];
            int k=0;
            for(int i=0;i<objs.length;i++){
                String strObj = (String)objs[i];
                String strs[] = strObj.split(",");
    
                //卫条件
                if(strsQu[0]!=null&&strsQu[0].trim().length()>0){
                    if(!strs[0].contains(strsQu[0])){//模糊匹配姓名
                        continue;
                    }
                }
    
                if(strsQu[1]!=null&&strsQu[1].trim().length()>0){
                    if(!strs[1].contains(strsQu[1])){//模糊匹配性别
                        continue;
                    }
                }
    
                //年龄大于第一段的
                if(strsQu[2]!=null){
                    if(strsQu[2].trim().length()>0){
                        if(Integer.parseInt(strs[2])<Integer.parseInt(strsQu[2])){
                            continue;
                        }
                    }
                }
    
                //年龄小于第二段的
                if(strsQu[5]!=null){
                    if(strsQu[5].trim().length()>0){
                        if(Integer.parseInt(strs[2])>Integer.parseInt(strsQu[5])){
                            continue;
                        }
                    }
                }
    
                //电话
                if(strsQu[3]!=null&&strsQu[3].trim().length()>0){
                    if(!strs[3].contains(strsQu[3])){//模糊匹配
                        continue;
                    }
                }
    
                //地址
                if(strsQu[4]!=null&&strsQu[4].trim().length()>0){
                    if(!strs[4].contains(strsQu[4])){//模糊匹配
                        continue;
                    }
                }
                tempObjs[k++]=objs[i];
            }
    
            Object[] tempObjs2 = new Object[k];
            for(int i=0;i<k;i++){
                tempObjs2[i]=tempObjs[i];
            }
            return tempObjs2;
        }
    
    }
    
  • 相关阅读:
    IOS开发学习笔记029-反选、全选、删除按钮的实现
    IOS开发学习笔记028-UITableView单组数据显示代码优化
    IOS开发学习笔记027-UITableView 使用模型对象
    IOS开发学习笔记026-UITableView的使用
    关于博客搭建的惨痛经历
    Kettle在windows上安装
    Java实现Excel数据批量导入数据库
    Saiku导出excel指标列无线条以及0与空值显示问题(三十二)
    Saiku默认给数据类型的数据添加小数点问题处理(三十一)
    Saiku上线部署准备(三十)
  • 原文地址:https://www.cnblogs.com/webmen/p/5739341.html
Copyright © 2011-2022 走看看