【技能实训】DMS数据挖掘项目-Day04

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【技能实训】DMS数据挖掘项目-Day04

任务5

【任务5.3】创建基础匹配实体类

在com.qst.dms.entity下创建MatchedDataBase.java

该类中暂时不用定义任何方法

程序设计

package com.qst.dms.entity;
public class MatchedDataBase {
}

【任务5.3.1】日志数据匹配类,对日志实体数据进行匹配,对同一个用户在同一个IP地址登录登出信息进行匹配。

在com.qst.dms.entity 下创建MatchedLogRec.java,继承MatchedDataBase类

功能要求:

  1. 成员属性及相关方法如下
    private LogRec login;
  private LogRec logout;
  // user用户登录名
  public String getUser() {
    return login.getUser();
  }
  // 登入时刻
  public Date getLogInTime() {
    return login.getTime();
  }
  // 登出时刻
  public Date getLogoutTime() {
    return logout.getTime();
  }
  // 登入记录
  public LogRec getLogin() {
    return login;
  }
  // 登出记录
  public LogRec getLogout() {
    return logout;
  }
  public MatchedLogRec() {
  }
  public MatchedLogRec(LogRec login, LogRec logout) {
}
  1. 构造方法
toString(): login.toString() + " | " + logout.toString()

程序设计

package com.qst.dms.entity;
import java.util.Date;
public class MatchedLogRec extends MatchedDataBase {
    private LogRec login;
    private LogRec logout;
    // user用户登录名
    public String getUser() {
        return login.getUser();
    }
    // 登入时刻
    public Date getLogInTime() {
        return login.getTime();
    }
    // 登出时刻
    public Date getLogoutTime() {
        return logout.getTime();
    }
    // 登入记录
    public LogRec getLogin() {
        return login;
    }
    // 登出记录
    public LogRec getLogout() {
        return logout;
    }
    public MatchedLogRec() {
    }
    public MatchedLogRec(LogRec login, LogRec logout) {
        this.login = login;
        this.logout = logout;
    }
    @Override
    public String toString() {
        return login.toString() + " | " + logout.toString();
    }
}

【任务5.3.2】修改LogRecService类,在该类中增加显示匹配日志信息的showMatchLog方法。

// 匹配日志信息输出
  public void showMatchLog(MatchedLogRec... matchLogs) {
    ……
    }

程序设计

package com.qst.dms.service;
import com.qst.dms.entity.LogRec;
import com.qst.dms.entity.MatchedLogRec;
import java.util.Date;
import java.util.Scanner;
public class LogRecService {
    private Scanner scanner;
    public LogRecService() {
        scanner = new Scanner(System.in);
    }
    public LogRec inputLog() {
        System.out.println("请输入ID标识:");
        int id = scanner.nextInt();
        Date nowDate = new Date();
        System.out.println("请输入地址:");
        String address = scanner.next();
        int type = LogRec.GATHER;
        System.out.println("请输入登录用户名:");
        String user = scanner.next();
        System.out.println("请输入主机IP:");
        String ip = scanner.next();
        int logType;
        while (true) {
            try {
                System.out.println("请输入登录状态(1表示登录,0表示登出):");
                logType = scanner.nextInt();
                if (logType == 0 || logType == 1) {
                    break;
                } else {
                    throw new IllegalArgumentException("非法的登录状态");
                }
            } catch (Exception e) {
                System.out.println("输入错误,请重新输入");
                scanner.nextLine();
            }
        }
        return new LogRec(id, nowDate, address, type, user, ip, logType);
    }
    public void showLog(LogRec... logRecs) {
        System.out.println("日志信息:");
        for (LogRec logRec : logRecs) {
            System.out.println(logRec);
        }
    }
    // 匹配日志信息输出
    public void showMatchLog(MatchedLogRec... matchLogs) {
        System.out.println("匹配日志信息:");
        for (MatchedLogRec matchLog : matchLogs) {
            System.out.println(matchLog);
        }
    }
}

【任务5.4.1】物流数据匹配类,对物流实体数据进行匹配,对发货、送货、签收物流信息进行匹配。

在com.qst.dms.entity 下创建MatchedTransport.java,继承MatchedDataBase类

功能要求:

  1. 成员属性及相关方法如下
    private Transport send;
  private Transport trans;
  private Transport receive;
  public Transport getSend() {
    return send;
  }
  public void setSend(Transport send) {
    this.send = send;
  }
  public Transport getTrans() {
    return trans;
  }
  public void setTrans(Transport trans) {
    this.trans = trans;
  }
  public Transport getReceive() {
    return receive;
  }
  public void setReceive(Transport receive) {
    this.receive = receive;
  1. 构造方法
toString(): send.toString()+"|"+trans.toString()+"|"+receive;

程序设计

package com.qst.dms.entity;
public class MatchedTransport extends MatchedDataBase {
    private Transport send;
    private Transport trans;
    private Transport receive;
    public MatchedTransport(Transport send, Transport tran, Transport rec) {
        this.send=send;
        this.trans=tran;
        this.receive=rec;
    }
    public MatchedTransport() {
    }
    public Transport getSend() {
        return send;
    }
    public void setSend(Transport send) {
        this.send = send;
    }
    public Transport getTrans() {
        return trans;
    }
    public void setTrans(Transport trans) {
        this.trans = trans;
    }
    public Transport getReceive() {
        return receive;
    }
    public void setReceive(Transport receive) {
        this.receive = receive;
    }
    @Override
    public String toString() {
        return send.toString() + " | " + trans.toString() + " | " + receive.toString();
    }
}

【任务5.4.2】修改TransportService类,在该类中增加显示匹配日志信息的showMatchTransport方法。

// 匹配的物流信息输出
public void showMatchTransport(MatchedTransport... matchTrans) {

程序设计

package com.qst.dms.service;
import com.qst.dms.entity.MatchedLogRec;
import com.qst.dms.entity.MatchedTransport;
import com.qst.dms.entity.Transport;
import java.util.Date;
import java.util.Scanner;
public class TransportService {
    private Scanner scanner;
    public TransportService() {
        scanner = new Scanner(System.in);
    }
    public Transport inputTransport() {
        System.out.println("请输入ID标识:");
        int id = scanner.nextInt();
        Date nowDate = new Date();
        System.out.println("请输入地址:");
        String address = scanner.next();
        int type = Transport.GATHER;
        System.out.println("请输入货物经手人:");
        String handler = scanner.next();
        System.out.println("请输入收货人:");
        String reciver = scanner.next();
        int transportType;
        while (true) {
            try {
                System.out.println("请输入物流状态(1表示发货中,2表示送货中,3表示已签收):");
                transportType = scanner.nextInt();
                if (transportType ==1 || transportType == 2 || transportType==3) {
                    break;
                } else {
                    throw new IllegalArgumentException("非法的物流状态");
                }
            } catch (Exception e) {
                System.out.println("输入错误,请重新输入");
                scanner.nextLine();
            }
        }
        return new Transport(id, nowDate, address, type, handler, reciver, transportType);
    }
    public void showTransport(Transport... transports) {
        System.out.println("物流信息:");
        for (Transport transport : transports) {
            System.out.println(transport);
        }
    }
    // 匹配物流信息输出
    public void showMatchTransport(MatchedTransport... matchTrans) {
        System.out.println("匹配物流信息:");
        for (MatchedTransport matchTran : matchTrans) {
            System.out.println(matchTran);
        }
    }
}

【任务5.5】创建测试类,测试任务5.3中的程序,演示日志信息的匹配及打印输出

在com.qst.dms.dos 下创建MatchLogDemo.java

测试要求:

  1. LogRec类数据

id, time, address, type, user, ip,logType

133,2020-7-1,address1,3,lee,10.12.12.124, 1

129,2020-6-29,address1,3,lee,10.12.12.124, 0

127,2020-6-21,address1,3,lee,10.12.12.124, 1

125,2020-6-19,address1,3,lee,10.12.12.124, 0

123,2020-5-1,address1,3,lee,10.12.12.124, 1

  1. 通过LogRec类数据创建MatchedLogRec数据数组
  2. 打印输出MatchedLogRec数据

程序设计

package com.qst.dms.dos;
import com.qst.dms.entity.LogRec;
import com.qst.dms.entity.MatchedLogRec;
import com.qst.dms.service.LogRecService;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MatchLogDemo {
    public static void main(String[] args) {
        // 创建LogRec数据数组
        LogRec[] logRecs = new LogRec[5];
        try {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            logRecs[0] = new LogRec(133, dateFormat.parse("2020-07-01"), "address1", 3,
                    "lee", "10.12.12.124", 1);
            logRecs[1] = new LogRec(129, dateFormat.parse("2020-06-29"), "address1", 3,
                    "lee", "10.12.12.124", 0);
            logRecs[2] = new LogRec(127, dateFormat.parse("2020-06-21"), "address1", 3,
                    "lee", "10.12.12.124", 1);
            logRecs[3] = new LogRec(125, dateFormat.parse("2020-06-19"), "address1", 3,
                    "lee", "10.12.12.124", 0);
            logRecs[4] = new LogRec(123, dateFormat.parse("2020-05-01"), "address1", 3,
                    "lee", "10.12.12.124", 1);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        // 创建MatchedLogRec数据数组
        MatchedLogRec[] matchedLogRecs = new MatchedLogRec[2];
        matchedLogRecs[0] = new MatchedLogRec(logRecs[0], logRecs[1]);
        matchedLogRecs[1] = new MatchedLogRec(logRecs[2], logRecs[3]);
        // 创建LogRecService对象并打印输出MatchedLogRec数据
        LogRecService logRecService = new LogRecService();
        logRecService.showMatchLog(matchedLogRecs);
    }
}

测试

【任务5.6】创建测试类,测试任务5.4中的程序,演示物流信息的匹配及打印输出

在com.qst.dms.dos 下创建MatchTransportDemo.java

测试要求:

  1. Transport类数据数组

id, time, address, type,handler, reciver,transportType

233,2020-7-1,suzhou,3,lee,wang, 1

229,2020-6-29,hangzhou,2,lee,wang, 1

227,2020-6-21,nanjing,4,lee,sun, 2

225,2020-6-19,suzhou,5,lee,liu, 2

223,2020-5-1,nanjing,6,lee,zhang, 3

  1. 通过Transport类数据创建MatchedTransport数据数组
  2. 打印输出匹配的MatchedTransport数据

程序设计

package com.qst.dms.dos;
import com.qst.dms.entity.MatchedTransport;
import com.qst.dms.entity.Transport;
import com.qst.dms.service.TransportService;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MatchTransportDemo {
    public static void main(String[] args) {
        // 创建Transport数据数组
        Transport[] transports = new Transport[5];
        try {
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            transports[0] = new Transport(233, dateFormat.parse("2020-07-01"), "suzhou", 3,
                    "lee", "wang", 1);
            transports[1] = new Transport(229, dateFormat.parse("2020-06-29"), "hangzhou", 2,
                    "lee", "wang", 1);
            transports[2] = new Transport(227, dateFormat.parse("2020-06-21"), "nanjing", 4,
                    "lee", "sun", 2);
            transports[3] = new Transport(225, dateFormat.parse("2020-06-19"), "suzhou", 5,
                    "lee", "liu", 2);
            transports[4] = new Transport(223, dateFormat.parse("2020-05-01"), "nanjing", 6,
                    "lee", "zhang", 3);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        // 创建MatchedTransport数据数组
        MatchedTransport[] matchedTransports = new MatchedTransport[2];
        // 创建TransportService对象并打印输出匹配的MatchedTransport数据
        TransportService transportService = new TransportService();
        transportService.showMatchTransport(matchedTransports);
    }
}

测试

相关实践学习
MySQL基础-学生管理系统数据库设计
本场景介绍如何使用DMS工具连接RDS,并使用DMS图形化工具创建数据库表。
目录
相关文章
|
监控 数据挖掘 数据库
【技能实训】DMS数据挖掘项目(完整程序) 1
【技能实训】DMS数据挖掘项目(完整程序)
135 0
|
数据挖掘 数据库 数据库管理
【技能实训】DMS数据挖掘项目-Day14
【技能实训】DMS数据挖掘项目-Day14
73 1
|
存储 数据挖掘 测试技术
【技能实训】DMS数据挖掘项目(完整程序)2
【技能实训】DMS数据挖掘项目(完整程序)
87 0
|
7月前
|
前端开发 Java 数据管理
javaWeb基于SSM框架开发的社区医疗数据管理系统【项目源码+数据库脚本+报告】
javaWeb基于SSM框架开发的社区医疗数据管理系统【项目源码+数据库脚本+报告】
117 0
|
7月前
|
数据管理 程序员 人工智能
后台数据管理系统 - 项目架构设计【黑马程序员】
后台数据管理系统 - 项目架构设计【黑马程序员】
271 0
后台数据管理系统 - 项目架构设计【黑马程序员】
|
存储 数据挖掘 Java
【技能实训】DMS数据挖掘项目-Day15
【技能实训】DMS数据挖掘项目-Day15
80 0
|
29天前
|
人工智能 关系型数据库 分布式数据库
拥抱Data+AI|“全球第一”雅迪如何实现智能营销?DMS+PolarDB注入数据新活力
针对雅迪“云销通App”的需求与痛点,本文将介绍阿里云瑶池数据库DMS+PolarDB for AI提供的一站式Data+AI解决方案,助力销售人员高效用数,全面提升销售管理效率。
|
4月前
|
物联网 数据管理 Apache
拥抱IoT浪潮,Apache IoTDB如何成为你的智能数据守护者?解锁物联网新纪元的数据管理秘籍!
【8月更文挑战第22天】随着物联网技术的发展,数据量激增对数据库提出新挑战。Apache IoTDB凭借其面向时间序列数据的设计,在IoT领域脱颖而出。相较于传统数据库,IoTDB采用树形数据模型高效管理实时数据,具备轻量级结构与高并发能力,并集成Hadoop/Spark支持复杂分析。在智能城市等场景下,IoTDB能处理如交通流量等数据,为决策提供支持。IoTDB还提供InfluxDB协议适配器简化迁移过程,并支持细致的权限管理确保数据安全。综上所述,IoTDB在IoT数据管理中展现出巨大潜力与竞争力。
117 1
|
5月前
|
SQL NoSQL 数据管理
数据管理DMS使用问题之如何批量导入MongoDB的数据文件
阿里云数据管理DMS提供了全面的数据管理、数据库运维、数据安全、数据迁移与同步等功能,助力企业高效、安全地进行数据库管理和运维工作。以下是DMS产品使用合集的详细介绍。
|
1月前
|
关系型数据库 分布式数据库 数据库
云栖大会|从数据到决策:AI时代数据库如何实现高效数据管理?
在2024云栖大会「海量数据的高效存储与管理」专场,阿里云瑶池讲师团携手AMD、FunPlus、太美医疗科技、中石化、平安科技以及小赢科技、迅雷集团的资深技术专家深入分享了阿里云在OLTP方向的最新技术进展和行业最佳实践。

热门文章

最新文章