From 1d573a7c89b4260c26e2dab46dfcdaed16b01240 Mon Sep 17 00:00:00 2001 From: qian <2269112473@qq.com> Date: Mon, 16 Dec 2024 21:05:42 +0800 Subject: [PATCH] 1. --- .idea/compiler.xml | 2 +- .idea/jarRepositories.xml | 20 +++ .idea/workspace.xml | 156 +++++++----------- UserActionAnalyzePlatform.iml | 2 +- pom.xml | 8 + .../edu/hust/conf/ConfigurationManager.java | 2 +- .../cn/edu/hust/domain/SessionAggrStat.java | 80 ++++++++- .../java/cn/edu/hust/jdbc/JDBCHelperTest.java | 87 ++++++---- 8 files changed, 218 insertions(+), 139 deletions(-) create mode 100644 .idea/jarRepositories.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 6e7df1b..b4bf926 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -10,7 +10,7 @@ - + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index ca77c4a..6f01dc9 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,58 +1,24 @@ + + - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + @@ -142,11 +113,6 @@ - + @@ -278,38 +245,32 @@ + + + + + + + - - - - - - - - - + + + @@ -339,6 +300,17 @@ + + + @@ -449,9 +421,7 @@ - - + @@ -471,6 +441,7 @@ + 1529592741848 @@ -486,7 +457,14 @@ - @@ -589,46 +567,24 @@ - - - - - - - - - + + diff --git a/UserActionAnalyzePlatform.iml b/UserActionAnalyzePlatform.iml index 6e9857d..02911fd 100644 --- a/UserActionAnalyzePlatform.iml +++ b/UserActionAnalyzePlatform.iml @@ -1,6 +1,6 @@ - + diff --git a/pom.xml b/pom.xml index 9b55150..e800c9a 100644 --- a/pom.xml +++ b/pom.xml @@ -138,6 +138,14 @@ 1.6 + + org.apache.maven.plugins + maven-compiler-plugin + + 7 + 7 + + diff --git a/src/main/java/cn/edu/hust/conf/ConfigurationManager.java b/src/main/java/cn/edu/hust/conf/ConfigurationManager.java index c6760c1..dbae85b 100644 --- a/src/main/java/cn/edu/hust/conf/ConfigurationManager.java +++ b/src/main/java/cn/edu/hust/conf/ConfigurationManager.java @@ -5,7 +5,7 @@ import java.util.Properties; /** * 配置文件管理类 - * 主要的功能:从特定的properties文件中读取相应的key/value11 + * 主要的功能:从特定的properties文件中读取相应的key/value */ public class ConfigurationManager { private static Properties prop=new Properties(); diff --git a/src/main/java/cn/edu/hust/domain/SessionAggrStat.java b/src/main/java/cn/edu/hust/domain/SessionAggrStat.java index b5d4521..ff8313c 100644 --- a/src/main/java/cn/edu/hust/domain/SessionAggrStat.java +++ b/src/main/java/cn/edu/hust/domain/SessionAggrStat.java @@ -2,28 +2,68 @@ package cn.edu.hust.domain; import java.io.Serializable; +// SessionAggrStat类,实现了Serializable接口,意味着该类的对象可以被序列化和反序列化, +// 常用于对象在网络传输、持久化存储等场景下的保存和恢复操作 public class SessionAggrStat implements Serializable { + + // 任务ID,用于标识相关的任务,通常在涉及多任务处理的场景下,区分不同任务对应的统计数据 private Long taskId; + + // 会话数量,记录某个范围内的会话的总数 private Long SessionCount; + + // 访问时长在1秒到3秒区间的相关占比或统计数值(具体含义需根据业务场景确定),是一个双精度浮点数类型 private double visit_Length_1s_3s; + + // 访问时长在4秒到6秒区间的相关占比或统计数值(具体含义需根据业务场景确定),是一个双精度浮点数类型 private double visit_Length_4s_6s; + + // 访问时长在7秒到9秒区间的相关占比或统计数值(具体含义需根据业务场景确定),是一个双精度浮点数类型 private double visit_Length_7s_9s; + + // 访问时长在10秒到30秒区间的相关占比或统计数值(具体含义需根据业务场景确定),是一个双精度浮点数类型 private double visit_Length_10s_30s; + + // 访问时长在30秒到60秒区间的相关占比或统计数值(具体含义需根据业务场景确定),是一个双精度浮点数类型 private double visit_Length_30s_60s; + + // 访问时长在1分钟到3分钟区间的相关占比或统计数值(具体含义需根据业务场景确定),是一个双精度浮点数类型 private double visit_Length_1m_3m; + + // 访问时长在3分钟到10分钟区间的相关占比或统计数值(具体含义需根据业务场景确定),是一个双精度浮点数类型 private double visit_Length_3m_10m; + + // 访问时长在10分钟到30分钟区间的相关占比或统计数值(具体含义需根据业务场景确定),是一个双精度浮点数类型 private double visit_Length_10m_30m; + + // 访问时长大于30分钟的相关占比或统计数值(具体含义需根据业务场景确定),是一个双精度浮点数类型 private double visit_Length_30m; + + // 步长在1到3区间的相关占比或统计数值(具体含义需根据业务场景确定,比如可能是页面跳转的步数等相关统计),是一个双精度浮点数类型 private double step_Length_1_3; + + // 步长在4到6区间的相关占比或统计数值(具体含义需根据业务场景确定,比如可能是页面跳转的步数等相关统计),是一个双精度浮点数类型 private double step_Length_4_6; + + // 步长在7到9区间的相关占比或统计数值(具体含义需根据业务场景确定,比如可能是页面跳转的步数等相关统计),是一个双精度浮点数类型 private double step_Length_7_9; + + // 步长在10到30区间的相关占比或统计数值(具体含义需根据业务场景确定,比如可能是页面跳转的步数等相关统计),是一个双精度浮点数类型 private double step_Length_10_30; + + // 步长在30到60区间的相关占比或统计数值(具体含义需根据业务场景确定,比如可能是页面跳转的步数等相关统计),是一个双精度浮点数类型 private double step_Length_30_60; + + // 步长大于60的相关占比或统计数值(具体含义需根据业务场景确定,比如可能是页面跳转的步数等相关统计),是一个双精度浮点数类型 private double step_Length_60; + // 无参构造函数,用于创建SessionAggrStat类的实例, + // 当通过默认方式创建对象时(如:SessionAggrStat obj = new SessionAggrStat();)会调用此构造函数 public SessionAggrStat() { } + // 设置方法,用于一次性设置SessionAggrStat类对象的所有属性值 + // 参数依次对应各个属性的值,按照顺序传入相应的数据来初始化对象的各个属性 public void set(Long taskId, Long sessionCount, double visit_Length_1s_3s, double visit_Length_4s_6s, double visit_Length_7s_9s, double visit_Length_10s_30s, double visit_Length_30s_60s, double visit_Length_1m_3m, double visit_Length_3m_10m, double visit_Length_10m_30m, double visit_Length_30m, double step_Length_1_3, double step_Length_4_6, double step_Length_7_9, double step_Length_10_30, double step_Length_30_60, double step_Length_60) { this.taskId = taskId; SessionCount = sessionCount; @@ -44,139 +84,173 @@ public class SessionAggrStat implements Serializable { this.step_Length_60 = step_Length_60; } + // 获取任务ID的方法,返回当前SessionAggrStat对象的任务ID属性值 public Long getTaskId() { return taskId; } + // 设置任务ID的方法,用于给当前SessionAggrStat对象的任务ID属性赋值 public void setTaskId(Long taskId) { this.taskId = taskId; } + // 获取会话数量的方法,返回当前SessionAggrStat对象的会话数量属性值 public Long getSessionCount() { return SessionCount; } + // 设置会话数量的方法,用于给当前SessionAggrStat对象的会话数量属性赋值 public void setSessionCount(Long sessionCount) { SessionCount = sessionCount; } + // 获取访问时长在1秒到3秒区间的相关占比或统计数值的方法,返回对应属性值 public double getVisit_Length_1s_3s() { return visit_Length_1s_3s; } + // 设置访问时长在1秒到3秒区间的相关占比或统计数值的方法,用于给对应属性赋值 public void setVisit_Length_1s_3s(double visit_Length_1s_3s) { this.visit_Length_1s_3s = visit_Length_1s_3s; } + // 获取访问时长在4秒到6秒区间的相关占比或统计数值的方法,返回对应属性值 public double getVisit_Length_4s_6s() { return visit_Length_4s_6s; } + // 设置访问时长在4秒到6秒区间的相关占比或统计数值的方法,用于给对应属性赋值 public void setVisit_Length_4s_6s(double visit_Length_4s_6s) { this.visit_Length_4s_6s = visit_Length_4s_6s; } + // 获取访问时长在7秒到9秒区间的相关占比或统计数值的方法,返回对应属性值 public double getVisit_Length_7s_9s() { return visit_Length_7s_9s; } + // 设置访问时长在7秒到9秒区间的相关占比或统计数值的方法,用于给对应属性赋值 public void setVisit_Length_7s_9s(double visit_Length_7s_9s) { this.visit_Length_7s_9s = visit_Length_7s_9s; } + // 获取访问时长在10秒到30秒区间的相关占比或统计数值的方法,返回对应属性值 public double getVisit_Length_10s_30s() { return visit_Length_10s_30s; } + // 设置访问时长在10秒到30秒区间的相关占比或统计数值的方法,用于给对应属性赋值 public void setVisit_Length_10s_30s(double visit_Length_10s_30s) { this.visit_Length_10s_30s = visit_Length_10s_30s; } + // 获取访问时长在30秒到60秒区间的相关占比或统计数值的方法,返回对应属性值 public double getVisit_Length_30s_60s() { return visit_Length_30s_60s; } + // 设置访问时长在30秒到60秒区间的相关占比或统计数值的方法,用于给对应属性赋值 public void setVisit_Length_30s_60s(double visit_Length_30s_60s) { this.visit_Length_30s_60s = visit_Length_30s_60s; } + // 获取访问时长在1分钟到3分钟区间的相关占比或统计数值的方法,返回对应属性值 public double getVisit_Length_1m_3m() { return visit_Length_1m_3m; } + // 设置访问时长在1分钟到3分钟区间的相关占比或统计数值的方法,用于给对应属性赋值 public void setVisit_Length_1m_3m(double visit_Length_1m_3m) { this.visit_Length_1m_3m = visit_Length_1m_3m; } + // 获取访问时长在3分钟到10分钟区间的相关占比或统计数值的方法,返回对应属性值 public double getVisit_Length_3m_10m() { return visit_Length_3m_10m; } - public void setVisit_Legth_3m_10m(double visit_Legth_3m_10m) { - this.visit_Length_3m_10m = visit_Legth_3m_10m; + // 设置访问时长在3分钟到10分钟区间的相关占比或统计数值的方法,用于给对应属性赋值,此处方法名有拼写错误(原代码中为setVisit_Legth_3m_10m,应为setVisit_Length_3m_10m) + public void setVisit_Length_3m_10m(double visit_Length_3m_10m) { + this.visit_Length_3m_10m = visit_Length_3m_10m; } + // 获取访问时长在10分钟到30分钟区间的相关占比或统计数值的方法,返回对应属性值 public double getVisit_Length_10m_30m() { return visit_Length_10m_30m; } + // 设置访问时长在10分钟到30分钟区间的相关占比或统计数值的方法,用于给对应属性赋值 public void setVisit_Length_10m_30m(double visit_Length_10m_30m) { this.visit_Length_10m_30m = visit_Length_10m_30m; } + // 获取访问时长大于30分钟的相关占比或统计数值的方法,返回对应属性值 public double getVisit_Length_30m() { return visit_Length_30m; } + // 设置访问时长大于30分钟的相关占比或统计数值的方法,用于给对应属性赋值 public void setVisit_Length_30m(double visit_Length_30m) { this.visit_Length_30m = visit_Length_30m; } + // 获取步长在1到3区间的相关占比或统计数值的方法,返回对应属性值 public double getStep_Length_1_3() { return step_Length_1_3; } + // 设置步长在1到3区间的相关占比或统计数值的方法,用于给对应属性赋值 public void setStep_Length_1_3(double step_Length_1_3) { this.step_Length_1_3 = step_Length_1_3; } + // 获取步长在4到6区间的相关占比或统计数值的方法,返回对应属性值 public double getStep_Length_4_6() { return step_Length_4_6; } + // 设置步长在4到6区间的相关占比或统计数值的方法,用于给对应属性赋值 public void setStep_Length_4_6(double step_Length_4_6) { this.step_Length_4_6 = step_Length_4_6; } + // 获取步长在7到9区间的相关占比或统计数值的方法,返回对应属性值 public double getStep_Length_7_9() { return step_Length_7_9; } + // 设置步长在7到9区间的相关占比或统计数值的方法,用于给对应属性赋值 public void setStep_Length_7_9(double step_Length_7_9) { this.step_Length_7_9 = step_Length_7_9; } + // 获取步长在10到30区间的相关占比或统计数值的方法,返回对应属性值 public double getStep_Length_10_30() { return step_Length_10_30; } + // 设置步长在10到30区间的相关占比或统计数值的方法,用于给对应属性赋值 public void setStep_Length_10_30(double step_Length_10_30) { this.step_Length_10_30 = step_Length_10_30; } + // 获取步长在30到60区间的相关占比或统计数值的方法,返回对应属性值 public double getStep_Length_30_60() { return step_Length_30_60; } + // 设置步长在30到60区间的相关占比或统计数值的方法,用于给对应属性赋值 public void setStep_Length_30_60(double step_Length_30_60) { this.step_Length_30_60 = step_Length_30_60; } + // 获取步长大于60的相关占比或统计数值的方法,返回对应属性值 public double getStep_Length_60() { return step_Length_60; } + // 设置步长大于60的相关占比或统计数值的方法,用于给对应属性赋值 public void setStep_Length_60(double step_Length_60) { this.step_Length_60 = step_Length_60; } -} +} \ No newline at end of file diff --git a/src/test/java/cn/edu/hust/jdbc/JDBCHelperTest.java b/src/test/java/cn/edu/hust/jdbc/JDBCHelperTest.java index dbcc9ae..a216d81 100644 --- a/src/test/java/cn/edu/hust/jdbc/JDBCHelperTest.java +++ b/src/test/java/cn/edu/hust/jdbc/JDBCHelperTest.java @@ -1,47 +1,68 @@ -package cn.edu.hust.jdbc; - -import org.junit.Test; - -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.ArrayList; -import java.util.List; - -public class JDBCHelperTest { - @Test - public void testUpdate() - { - String sql="insert into user(username,age) values(?,?)"; - Object[] params={"zhangsan",12}; - JDBCHelper.getInstance().excuteUpdate(sql,params); +package cn.edu.hust.jdbc; // 包名,通常用来指定代码所属的模块或功能。 + +import org.junit.Test; // 导入JUnit的Test注解,用于标记测试方法。 + +import java.sql.ResultSet; // 导入SQL的ResultSet类,用于处理查询结果集。 +import java.sql.SQLException; // 导入SQL异常类,用于捕获和处理数据库相关的错误。 +import java.util.ArrayList; // 导入ArrayList类,用于创建动态数组。 +import java.util.List; // 导入List接口,用于定义列表类型的集合。 + +public class JDBCHelperTest { // 测试类,包含多个测试方法,用于验证JDBCHelper类的功能。 + + // 测试更新操作(插入数据) + @Test // 标记此方法为测试方法,JUnit会自动识别并执行。 + public void testUpdate() { + // SQL插入语句,插入一个用户信息到user表中。 + String sql = "insert into user(username, age) values(?, ?)"; + + // 插入的参数,表示要插入的用户名是"zhangsan",年龄是12。 + Object[] params = {"zhangsan", 12}; + + // 使用JDBCHelper类的单例实例执行更新操作(插入)。 + JDBCHelper.getInstance().excuteUpdate(sql, params); } + // 测试批量操作(批量插入数据) + @Test // 标记此方法为测试方法。 + public void testBatch() { + // SQL插入语句,插入多个用户信息到user表中。 + String sql = "insert into user(username, age) values(?, ?)"; - @Test - public void testBatch() - { - String sql="insert into user(username,age) values(?,?)"; - List params=new ArrayList(); - params.add(new Object[]{"lisi",23}); - params.add(new Object[]{"wangwu",28}); - JDBCHelper.getInstance().excuteBatch(sql,params); + // 创建一个List集合用于保存多组插入参数。 + List params = new ArrayList<>(); + + // 添加第一组插入参数:用户名"lisi",年龄23。 + params.add(new Object[]{"lisi", 23}); + + // 添加第二组插入参数:用户名"wangwu",年龄28。 + params.add(new Object[]{"wangwu", 28}); + + // 使用JDBCHelper类的单例实例执行批量插入操作。 + JDBCHelper.getInstance().excuteBatch(sql, params); } - @Test - public void testQuery() - { - String sql="select * from user where username=?"; - Object[] params={"zhangsan"}; + // 测试查询操作(查询单个用户数据) + @Test // 标记此方法为测试方法。 + public void testQuery() { + // SQL查询语句,查询username为"zhangsan"的用户信息。 + String sql = "select * from user where username=?"; + + // 查询条件,用户名为"zhangsan"。 + Object[] params = {"zhangsan"}; + + // 使用JDBCHelper类的单例实例执行查询操作,并传入查询回调接口。 JDBCHelper.getInstance().excuteQuery(sql, params, new JDBCHelper.QueryCallBack() { + + // QueryCallBack接口的process方法,负责处理查询结果。 @Override public void process(ResultSet rs) { try { - if(rs.next()) - { - System.out.println("结果是"+rs.getInt(2)); + // 如果查询结果集中有数据,取出第二列的内容(假设为年龄)。 + if (rs.next()) { + System.out.println("结果是" + rs.getInt(2)); // 输出查询结果中的第二列(年龄)。 } } catch (SQLException e) { - e.printStackTrace(); + e.printStackTrace(); // 捕获SQL异常并打印堆栈信息。 } } });