【7】JAVA---地址App小软件(AddrBusiness.class)(逻辑层)

简介: 【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;
    }
}
目录
相关文章
|
23天前
|
Java
Java开发实现图片URL地址检验,如何编码?
【10月更文挑战第14天】Java开发实现图片URL地址检验,如何编码?
53 4
|
22天前
|
缓存 算法 Java
Java 实现的局域网管控软件的性能调优
局域网管控软件在企业网络管理中至关重要,但随着网络规模扩大和功能需求增加,其性能可能受影响。文章分析了数据处理效率低下、网络通信延迟和资源占用过高等性能瓶颈,并提出了使用缓存、优化算法、NIO库及合理管理线程池等调优措施,最终通过性能测试验证了优化效果,显著提升了软件性能。
31 1
|
16天前
|
Web App开发 Java
使用java操作浏览器的工具selenium-java和webdriver下载地址
【10月更文挑战第12天】Selenium-java依赖包用于自动化Web测试,版本为3.141.59。ChromeDriver和EdgeDriver分别用于控制Chrome和Edge浏览器,需确保版本与浏览器匹配。示例代码展示了如何使用Selenium-java模拟登录CSDN,包括设置驱动路径、添加Cookies和获取页面源码。
|
11天前
|
Java Spring
JAVA获取重定向地址URL的两种方法
【10月更文挑战第17天】本文介绍了两种在Java中获取HTTP响应头中的Location字段的方法:一种是使用HttpURLConnection,另一种是使用Spring的RestTemplate。通过设置连接超时和禁用自动重定向,确保请求按预期执行。此外,还提供了一个自定义的`NoRedirectSimpleClientHttpRequestFactory`类,用于禁用RestTemplate的自动重定向功能。
|
3月前
|
消息中间件 Java
【实战揭秘】如何运用Java发布-订阅模式,打造高效响应式天气预报App?
【8月更文挑战第30天】发布-订阅模式是一种消息通信模型,发送者将消息发布到公共队列,接收者自行订阅并处理。此模式降低了对象间的耦合度,使系统更灵活、可扩展。例如,在天气预报应用中,`WeatherEventPublisher` 类作为发布者收集天气数据并通知订阅者(如 `TemperatureDisplay` 和 `HumidityDisplay`),实现组件间的解耦和动态更新。这种方式适用于事件驱动的应用,提高了系统的扩展性和可维护性。
66 2
|
3月前
|
Java 容器
【Azure Function App】Java Function在运行中遇见内存不足的错误
【Azure Function App】Java Function在运行中遇见内存不足的错误
|
3月前
|
Java Maven
【Azure Function App】Java Function部署到Azure后出现中文显示乱码问题
【Azure Function App】Java Function部署到Azure后出现中文显示乱码问题
|
3月前
|
Java
【Azure 应用服务】如何查看App Service Java堆栈JVM相关的参数默认配置值?
【Azure 应用服务】如何查看App Service Java堆栈JVM相关的参数默认配置值?
【Azure 应用服务】如何查看App Service Java堆栈JVM相关的参数默认配置值?
|
3月前
|
Java 开发工具 git
【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因
【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因
|
弹性计算 数据可视化 程序员
开发APP软件需要多少钱?
开发APP软件需要多少钱?很多人不太理解,为什么做一个在手机上买东西的app,就像网站一样,找人外包开发价格怎么要花十几万?app开发成本是如何计算的?到底需要多少钱呢?app的开发价格并没有一个固定的标准,受到多种因素的影响:
2226 0
开发APP软件需要多少钱?
下一篇
无影云桌面