【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;
    }
}
目录
相关文章
|
9天前
|
存储 监控 安全
单位网络监控软件:Java 技术驱动的高效网络监管体系构建
在数字化办公时代,构建基于Java技术的单位网络监控软件至关重要。该软件能精准监管单位网络活动,保障信息安全,提升工作效率。通过网络流量监测、访问控制及连接状态监控等模块,实现高效网络监管,确保网络稳定、安全、高效运行。
37 11
|
2月前
|
Java
Java开发实现图片URL地址检验,如何编码?
【10月更文挑战第14天】Java开发实现图片URL地址检验,如何编码?
95 4
|
2月前
|
缓存 算法 Java
Java 实现的局域网管控软件的性能调优
局域网管控软件在企业网络管理中至关重要,但随着网络规模扩大和功能需求增加,其性能可能受影响。文章分析了数据处理效率低下、网络通信延迟和资源占用过高等性能瓶颈,并提出了使用缓存、优化算法、NIO库及合理管理线程池等调优措施,最终通过性能测试验证了优化效果,显著提升了软件性能。
42 1
|
1月前
|
移动开发 小程序
仿青藤之恋社交交友软件系统源码 即时通讯 聊天 微信小程序 App H5三端通用
仿青藤之恋社交交友软件系统源码 即时通讯 聊天 微信小程序 App H5三端通用
58 3
|
1月前
|
消息中间件 前端开发 Java
【国产化软件】接口开放平台:Java+Swagger+Vue3,适配移动端
本文档介绍了基于Java的开放平台技术栈及使用流程,涵盖从注册开发者账号、创建应用、申请令牌到调用API接口的全过程。平台提供丰富的接口管理和统计功能,支持开发者在线维护个人资料和接口令牌,同时兼容移动设备访问和黑夜模式。技术栈方面,后端采用Spring Boot 3 + MySQL + Redis + RabbitMQ + Nacos,前端则基于Vue3 + TypeScript 5.x + Element Plus + UnoCSS。访问开放平台的地址为:http://java.test.yesapi.cn/platform/。
|
2月前
|
Web App开发 Java
使用java操作浏览器的工具selenium-java和webdriver下载地址
【10月更文挑战第12天】Selenium-java依赖包用于自动化Web测试,版本为3.141.59。ChromeDriver和EdgeDriver分别用于控制Chrome和Edge浏览器,需确保版本与浏览器匹配。示例代码展示了如何使用Selenium-java模拟登录CSDN,包括设置驱动路径、添加Cookies和获取页面源码。
142 6
|
1月前
|
Java Spring
JAVA获取重定向地址URL的两种方法
【10月更文挑战第17天】本文介绍了两种在Java中获取HTTP响应头中的Location字段的方法:一种是使用HttpURLConnection,另一种是使用Spring的RestTemplate。通过设置连接超时和禁用自动重定向,确保请求按预期执行。此外,还提供了一个自定义的`NoRedirectSimpleClientHttpRequestFactory`类,用于禁用RestTemplate的自动重定向功能。
|
4月前
|
消息中间件 Java
【实战揭秘】如何运用Java发布-订阅模式,打造高效响应式天气预报App?
【8月更文挑战第30天】发布-订阅模式是一种消息通信模型,发送者将消息发布到公共队列,接收者自行订阅并处理。此模式降低了对象间的耦合度,使系统更灵活、可扩展。例如,在天气预报应用中,`WeatherEventPublisher` 类作为发布者收集天气数据并通知订阅者(如 `TemperatureDisplay` 和 `HumidityDisplay`),实现组件间的解耦和动态更新。这种方式适用于事件驱动的应用,提高了系统的扩展性和可维护性。
81 2
|
2月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
757 1
|
2天前
|
JSON 缓存 前端开发
HarmonyOS NEXT 5.0鸿蒙开发一套影院APP(附带源码)
本项目基于HarmonyOS NEXT 5.0开发了一款影院应用程序,主要实现了电影和影院信息的展示功能。应用包括首页、电影列表、影院列表等模块。首页包含轮播图与正在热映及即将上映的电影切换显示;电影列表模块通过API获取电影数据并以网格形式展示,用户可以查看电影详情;影院列表则允许用户选择城市后查看对应影院信息,并支持城市选择弹窗。此外,项目中还集成了Axios用于网络请求,并进行了二次封装以简化接口调用流程,同时添加了请求和响应拦截器来处理通用逻辑。整体代码结构清晰,使用了组件化开发方式,便于维护和扩展。 该简介概括了提供的内容,但请注意实际开发中还需考虑UI优化、性能提升等方面的工作。
38 11

热门文章

最新文章