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;
        }
    
    }
    
  • 相关阅读:
    改变Edit的光标(使用CreateCaret,ShowCaret和LoadBitmap三个API函数)
    浅析Delphi Container库(有开源的DCLX)
    Delphi接口的底层实现(接口在内存中仍然有其布局,它依附在对象的内存空间中,有汇编解释)——接口的内存结构图,简单清楚,深刻 good
    Asp.Net在多线程环境下的状态存储问题
    C#程序中注释过多的8条理由
    CentOS 6.4 编译安装LLVM3.3,Clang和Libc++
    Microsoft 2013校园招聘笔试题及解答
    代码契约CodeContract(八)
    T-SQL 临时表、表变量、UNION
    BST&AVL&红黑树简单介绍
  • 原文地址:https://www.cnblogs.com/webmen/p/5739341.html
Copyright © 2011-2022 走看看