From 0966dc92b6d182213c0bacb70c8fb17d2042cd81 Mon Sep 17 00:00:00 2001 From: yy <2565886549@qq.com> Date: Mon, 16 Dec 2024 21:56:09 +0800 Subject: [PATCH] =?UTF-8?q?1.=E7=8E=AF=E5=A2=83=E6=90=AD=E5=BB=BA=E5=AE=8C?= =?UTF-8?q?=E6=88=90=202.=E7=9B=B8=E5=85=B3=E7=9A=84=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E7=B1=BB=E7=BC=96=E5=86=99=E5=AE=8C=E6=88=90=203.=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E6=96=87=E4=BB=B6=E7=AE=A1=E7=90=86=E7=B1=BB=E7=BC=96?= =?UTF-8?q?=E5=86=99=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/workspace.xml | 22 +-- .../hust/dao/impl/SessionAggrStatDaoImpl.java | 57 +++++--- .../hust/dao/impl/SessionDetailDaoImpl.java | 135 ++++++++++++------ .../dao/impl/SessionRandomExtractDaoImpl.java | 60 +++++--- .../cn/edu/hust/dao/impl/TaskDaoImpl.java | 78 ++++++---- .../hust/dao/impl/Top10CategoryDaoImpl.java | 93 ++++++++---- .../dao/impl/Top10CategorySessionDaoImpl.java | 57 +++++--- src/main/java/cn/edu/hust/demo/Singleton.java | 67 ++++----- 8 files changed, 366 insertions(+), 203 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 38b8afc..b82f45f 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -6,11 +6,9 @@ + - - - - + @@ -575,11 +580,6 @@ - - file://$PROJECT_DIR$/src/main/java/cn/edu/hust/dao/impl/SessionAggrStatDaoImpl.java - 24 - file://$PROJECT_DIR$/src/main/java/cn/edu/hust/dao/SessionDetailDao.java 7 diff --git a/src/main/java/cn/edu/hust/dao/impl/SessionAggrStatDaoImpl.java b/src/main/java/cn/edu/hust/dao/impl/SessionAggrStatDaoImpl.java index 3952939..97ac4ca 100644 --- a/src/main/java/cn/edu/hust/dao/impl/SessionAggrStatDaoImpl.java +++ b/src/main/java/cn/edu/hust/dao/impl/SessionAggrStatDaoImpl.java @@ -1,15 +1,24 @@ -package cn.edu.hust.dao.impl; // 定义包名,表示这个类属于cn.edu.hust.dao.impl包 +package cn.edu.hust.dao.impl; +// 定义包名,表示这个类属于cn.edu.hust.dao.impl包 -import cn.edu.hust.dao.SessionAggrStatDao; // 导入SessionAggrStatDao接口 -import cn.edu.hust.domain.SessionAggrStat; // 导入SessionAggrStat实体类 -import cn.edu.hust.jdbc.JDBCHelper; // 导入JDBCHelper类,用于数据库操作 +import cn.edu.hust.dao.SessionAggrStatDao; +// 导入SessionAggrStatDao接口 +import cn.edu.hust.domain.SessionAggrStat; +// 导入SessionAggrStat实体类 +import cn.edu.hust.jdbc.JDBCHelper; +// 导入JDBCHelper类,用于数据库操作 -import java.util.ArrayList; // 导入ArrayList类,用于创建列表 -import java.util.List; // 导入List接口 +import java.util.ArrayList; +// 导入ArrayList类,用于创建列表 +import java.util.List; +// 导入List接口 -public class SessionAggrStatDaoImpl implements SessionAggrStatDao { // 定义SessionAggrStatDaoImpl类,实现SessionAggrStatDao接口 - @Override // 覆盖接口中的方法 - public void insert(SessionAggrStat sessionAggrStat) { // 定义insert方法,用于插入单个SessionAggrStat对象 +public class SessionAggrStatDaoImpl implements SessionAggrStatDao { + // 定义SessionAggrStatDaoImpl类,实现SessionAggrStatDao接口 + @Override + // 覆盖接口中的方法 + public void insert(SessionAggrStat sessionAggrStat) { + // 定义insert方法,用于插入单个SessionAggrStat对象 String sql="insert into session_aggr_stat values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; // 定义插入SQL语句 Object[] params={sessionAggrStat.getTaskId(),sessionAggrStat.getSessionCount(),sessionAggrStat.getVisit_Length_1s_3s(), sessionAggrStat.getVisit_Length_4s_6s(),sessionAggrStat.getVisit_Length_7s_9s(), @@ -18,15 +27,22 @@ public class SessionAggrStatDaoImpl implements SessionAggrStatDao { // 定义Ses ,sessionAggrStat.getVisit_Length_10m_30m(),sessionAggrStat.getVisit_Length_30m(), sessionAggrStat.getStep_Length_1_3(),sessionAggrStat.getStep_Length_4_6(),sessionAggrStat.getStep_Length_7_9(), sessionAggrStat.getStep_Length_7_9(),sessionAggrStat.getStep_Length_10_30(), - sessionAggrStat.getStep_Length_30_60()}; // 创建参数数组,包含SessionAggrStat对象的所有属性 - JDBCHelper.getInstance().excuteUpdate(sql,params); // 调用JDBCHelper的excuteUpdate方法执行SQL更新 + sessionAggrStat.getStep_Length_30_60()}; + // 创建参数数组,包含SessionAggrStat对象的所有属性 + JDBCHelper.getInstance().excuteUpdate(sql,params); + // 调用JDBCHelper的excuteUpdate方法执行SQL更新 } - @Override // 覆盖接口中的方法 - public void batchInsert(List sessionAggrStatList) { // 定义batchInsert方法,用于批量插入SessionAggrStat对象 - String sql="insert into session_aggr_stat values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; // 定义插入SQL语句 - List paramList=new ArrayList(); // 创建一个列表,用于存储每个SessionAggrStat对象的参数数组 - for (SessionAggrStat sessionAggrStat:sessionAggrStatList) { // 遍历传入的SessionAggrStat对象列表 + @Override + // 覆盖接口中的方法 + public void batchInsert(List sessionAggrStatList) { + // 定义batchInsert方法,用于批量插入SessionAggrStat对象 + String sql="insert into session_aggr_stat values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; + // 定义插入SQL语句 + List paramList=new ArrayList(); + // 创建一个列表,用于存储每个SessionAggrStat对象的参数数组 + for (SessionAggrStat sessionAggrStat:sessionAggrStatList) { + // 遍历传入的SessionAggrStat对象列表 Object[] params={sessionAggrStat.getTaskId(),sessionAggrStat.getSessionCount(),sessionAggrStat.getVisit_Length_1s_3s(), sessionAggrStat.getVisit_Length_4s_6s(),sessionAggrStat.getVisit_Length_7s_9s(), sessionAggrStat.getVisit_Length_10s_30s(),sessionAggrStat.getVisit_Length_30s_60s(), @@ -34,9 +50,12 @@ public class SessionAggrStatDaoImpl implements SessionAggrStatDao { // 定义Ses ,sessionAggrStat.getVisit_Length_10m_30m(),sessionAggrStat.getVisit_Length_30m(), sessionAggrStat.getStep_Length_1_3(),sessionAggrStat.getStep_Length_4_6(),sessionAggrStat.getStep_Length_7_9(), sessionAggrStat.getStep_Length_7_9(),sessionAggrStat.getStep_Length_10_30(), - sessionAggrStat.getStep_Length_30_60()}; // 创建参数数组,包含当前SessionAggrStat对象的所有属性 - paramList.add(params); // 将参数数组添加到列表中 + sessionAggrStat.getStep_Length_30_60()}; + // 创建参数数组,包含当前SessionAggrStat对象的所有属性 + paramList.add(params); + // 将参数数组添加到列表中 } - JDBCHelper.getInstance().excuteBatch(sql,paramList); // 调用JDBCHelper的excuteBatch方法执行批量SQL更新 + JDBCHelper.getInstance().excuteBatch(sql,paramList); + // 调用JDBCHelper的excuteBatch方法执行批量SQL更新 } } \ No newline at end of file diff --git a/src/main/java/cn/edu/hust/dao/impl/SessionDetailDaoImpl.java b/src/main/java/cn/edu/hust/dao/impl/SessionDetailDaoImpl.java index aeb4873..f026c76 100644 --- a/src/main/java/cn/edu/hust/dao/impl/SessionDetailDaoImpl.java +++ b/src/main/java/cn/edu/hust/dao/impl/SessionDetailDaoImpl.java @@ -1,55 +1,100 @@ -package cn.edu.hust.dao.impl; // 定义包名,表示这个类属于cn.edu.hust.dao.impl包 +package cn.edu.hust.dao.impl; +// 定义包名,表示这个类属于cn.edu.hust.dao.impl包 -import cn.edu.hust.dao.SessionDetailDao; // 导入SessionDetailDao接口 -import cn.edu.hust.domain.SessionDetail; // 导入SessionDetail实体类 -import cn.edu.hust.jdbc.JDBCHelper; // 导入JDBCHelper类,用于数据库操作 +import cn.edu.hust.dao.SessionDetailDao; +// 导入SessionDetailDao接口 +import cn.edu.hust.domain.SessionDetail; +// 导入SessionDetail实体类 +import cn.edu.hust.jdbc.JDBCHelper; +// 导入JDBCHelper类,用于数据库操作 -import java.io.Serializable; // 导入Serializable接口,用于序列化 -import java.util.ArrayList; // 导入ArrayList类,用于创建列表 -import java.util.List; // 导入List接口 +import java.io.Serializable; +// 导入Serializable接口,用于序列化 +import java.util.ArrayList; +// 导入ArrayList类,用于创建列表 +import java.util.List; +// 导入List接口 -public class SessionDetailDaoImpl implements SessionDetailDao { // 定义SessionDetailDaoImpl类,实现SessionDetailDao接口 - @Override // 覆盖接口中的方法 - public void insert(SessionDetail sessionDetail) { // 定义insert方法,用于插入单个SessionDetail对象 - String sql="insert into session_detail values(?,?,?,?,?,?,?,?,?,?,?,?,?)"; // 定义插入SQL语句 - Object[] object=new Object[]{ // 创建一个对象数组,用于存储SessionDetail对象的属性值 - sessionDetail.getTaskId(), // 获取任务ID - sessionDetail.getUserId(), // 获取用户ID - sessionDetail.getSessinId(), // 获取会话ID(注意:这里可能是拼写错误,应该是sessionDetail.getSessionId()) - sessionDetail.getPageid(), // 获取页面ID - sessionDetail.getActionTime(), // 获取操作时间 - sessionDetail.getSearchKeyWord(), // 获取搜索关键词 - sessionDetail.getClickCategoryId(), // 获取点击的分类ID - sessionDetail.getClickProductId(), // 获取点击的产品ID - sessionDetail.getOrderCategoryIds(), // 获取订单的分类IDs - sessionDetail.getOrderProductIds(), // 获取订单的产品IDs - sessionDetail.getPayCategoryIds(), // 获取支付的分类IDs - sessionDetail.getPayProductIds() // 获取支付的产品IDs +public class SessionDetailDaoImpl implements SessionDetailDao { + // 定义SessionDetailDaoImpl类,实现SessionDetailDao接口 + @Override + // 覆盖接口中的方法 + public void insert(SessionDetail sessionDetail) { + // 定义insert方法,用于插入单个SessionDetail对象 + String sql="insert into session_detail values(?,?,?,?,?,?,?,?,?,?,?,?,?)"; + // 定义插入SQL语句 + Object[] object=new Object[]{ + // 创建一个对象数组,用于存储SessionDetail对象的属性值 + sessionDetail.getTaskId(), + // 获取任务ID + sessionDetail.getUserId(), + // 获取用户ID + sessionDetail.getSessinId(), + // 获取会话ID(注意:这里可能是拼写错误,应该是sessionDetail.getSessionId()) + sessionDetail.getPageid(), + // 获取页面ID + sessionDetail.getActionTime(), + // 获取操作时间 + sessionDetail.getSearchKeyWord(), + // 获取搜索关键词 + sessionDetail.getClickCategoryId(), + // 获取点击的分类ID + sessionDetail.getClickProductId(), + // 获取点击的产品ID + sessionDetail.getOrderCategoryIds(), + // 获取订单的分类IDs + sessionDetail.getOrderProductIds(), + // 获取订单的产品IDs + sessionDetail.getPayCategoryIds(), + // 获取支付的分类IDs + sessionDetail.getPayProductIds() + // 获取支付的产品IDs }; - JDBCHelper.getInstance().excuteUpdate(sql,object); // 调用JDBCHelper的excuteUpdate方法执行SQL更新(注意:这里应该是executeUpdate) + JDBCHelper.getInstance().excuteUpdate(sql,object); + // 调用JDBCHelper的excuteUpdate方法执行SQL更新(注意:这里应该是executeUpdate) } - @Override // 覆盖接口中的方法 - public void batchInsert(List sessionDetailList) { // 定义batchInsert方法,用于批量插入SessionDetail对象 - String sql="insert into session_detail values(?,?,?,?,?,?,?,?,?,?,?,?,?)"; // 定义插入SQL语句 - List paramList=new ArrayList(); // 创建一个列表,用于存储每个SessionDetail对象的参数数组 - for (SessionDetail sessionDetail:sessionDetailList) { // 遍历传入的SessionDetail对象列表 - Object[] object=new Object[]{ // 创建一个对象数组,用于存储当前SessionDetail对象的属性值 - sessionDetail.getTaskId(), // 获取任务ID - sessionDetail.getUserId(), // 获取用户ID - sessionDetail.getSessinId(), // 获取会话ID(注意:这里可能是拼写错误,应该是sessionDetail.getSessionId()) - sessionDetail.getPageid(), // 获取页面ID - sessionDetail.getActionTime(), // 获取操作时间 - sessionDetail.getSearchKeyWord(), // 获取搜索关键词 - sessionDetail.getClickCategoryId(), // 获取点击的分类ID - sessionDetail.getClickProductId(), // 获取点击的产品ID - sessionDetail.getOrderCategoryIds(), // 获取订单的分类IDs - sessionDetail.getOrderProductIds(), // 获取订单的产品IDs - sessionDetail.getPayCategoryIds(), // 获取支付的分类IDs - sessionDetail.getPayProductIds() // 获取支付的产品IDs + @Override + // 覆盖接口中的方法 + public void batchInsert(List sessionDetailList) { + // 定义batchInsert方法,用于批量插入SessionDetail对象 + String sql="insert into session_detail values(?,?,?,?,?,?,?,?,?,?,?,?,?)"; + // 定义插入SQL语句 + List paramList=new ArrayList(); + // 创建一个列表,用于存储每个SessionDetail对象的参数数组 + for (SessionDetail sessionDetail:sessionDetailList) { + // 遍历传入的SessionDetail对象列表 + Object[] object=new Object[]{ + // 创建一个对象数组,用于存储当前SessionDetail对象的属性值 + sessionDetail.getTaskId(), + // 获取任务ID + sessionDetail.getUserId(), + // 获取用户ID + sessionDetail.getSessinId(), + // 获取会话ID(注意:这里可能是拼写错误,应该是sessionDetail.getSessionId()) + sessionDetail.getPageid(), + // 获取页面ID + sessionDetail.getActionTime(), + // 获取操作时间 + sessionDetail.getSearchKeyWord(), + // 获取搜索关键词 + sessionDetail.getClickCategoryId(), + // 获取点击的分类ID + sessionDetail.getClickProductId(), + // 获取点击的产品ID + sessionDetail.getOrderCategoryIds(), + // 获取订单的分类IDs + sessionDetail.getOrderProductIds(), + // 获取订单的产品IDs + sessionDetail.getPayCategoryIds(), + // 获取支付的分类IDs + sessionDetail.getPayProductIds() + // 获取支付的产品IDs }; - paramList.add(object); // 将参数数组添加到列表中 + paramList.add(object); + // 将参数数组添加到列表中 } - JDBCHelper.getInstance().excuteBatch(sql,paramList); // 调用JDBCHelper的excuteBatch方法执行批量SQL更新(注意:这里应该是executeBatch) + JDBCHelper.getInstance().excuteBatch(sql,paramList); + // 调用JDBCHelper的excuteBatch方法执行批量SQL更新(注意:这里应该是executeBatch) } } \ No newline at end of file diff --git a/src/main/java/cn/edu/hust/dao/impl/SessionRandomExtractDaoImpl.java b/src/main/java/cn/edu/hust/dao/impl/SessionRandomExtractDaoImpl.java index 9feca34..6b55a89 100644 --- a/src/main/java/cn/edu/hust/dao/impl/SessionRandomExtractDaoImpl.java +++ b/src/main/java/cn/edu/hust/dao/impl/SessionRandomExtractDaoImpl.java @@ -1,27 +1,47 @@ -package cn.edu.hust.dao.impl; // 定义包名,表示这个类属于cn.edu.hust.dao.impl包 +package cn.edu.hust.dao.impl; +// 定义包名,表示这个类属于cn.edu.hust.dao.impl包 -import cn.edu.hust.dao.SessionRandomExtractDao; // 导入SessionRandomExtractDao接口 -import cn.edu.hust.domain.SessionRandomExtract; // 导入SessionRandomExtract实体类 -import cn.edu.hust.jdbc.JDBCHelper; // 导入JDBCHelper类,用于数据库操作 +import cn.edu.hust.dao.SessionRandomExtractDao; +// 导入SessionRandomExtractDao接口 +import cn.edu.hust.domain.SessionRandomExtract; +// 导入SessionRandomExtract实体类 +import cn.edu.hust.jdbc.JDBCHelper; +// 导入JDBCHelper类,用于数据库操作 -import java.util.ArrayList; // 导入ArrayList类,用于创建列表 -import java.util.List; // 导入List接口 +import java.util.ArrayList; +// 导入ArrayList类,用于创建列表 +import java.util.List; +// 导入List接口 -public class SessionRandomExtractDaoImpl implements SessionRandomExtractDao { // 定义SessionRandomExtractDaoImpl类,实现SessionRandomExtractDao接口 - @Override // 覆盖接口中的方法 - public void batchInsert(List sessionRandomExtractList) { // 定义batchInsert方法,用于批量插入SessionRandomExtract对象 - String sql="insert into session_random_extract values(?,?,?,?,?)"; // 定义插入SQL语句 - List paramList=new ArrayList(); // 创建一个列表,用于存储每个SessionRandomExtract对象的参数数组 - for (SessionRandomExtract sessionRandomExtract:sessionRandomExtractList) { // 遍历传入的SessionRandomExtract对象列表 - Object[] params=new Object[]{ // 创建一个对象数组,用于存储当前SessionRandomExtract对象的属性值 - sessionRandomExtract.getTaskId(), // 获取任务ID - sessionRandomExtract.getSessionId(), // 获取会话ID - sessionRandomExtract.getStartTime(), // 获取开始时间 - sessionRandomExtract.getSearchKeyWords(), // 获取搜索关键词 - sessionRandomExtract.getClick_category_ids() // 获取点击的分类IDs +public class SessionRandomExtractDaoImpl implements SessionRandomExtractDao { + // 定义SessionRandomExtractDaoImpl类,实现SessionRandomExtractDao接口 + @Override + // 覆盖接口中的方法 + public void batchInsert(List sessionRandomExtractList) { + // 定义batchInsert方法,用于批量插入SessionRandomExtract对象 + String sql="insert into session_random_extract values(?,?,?,?,?)"; + // 定义插入SQL语句 + List paramList=new ArrayList(); + // 创建一个列表,用于存储每个SessionRandomExtract对象的参数数组 + for (SessionRandomExtract sessionRandomExtract:sessionRandomExtractList) { + // 遍历传入的SessionRandomExtract对象列表 + Object[] params=new Object[]{ + // 创建一个对象数组,用于存储当前SessionRandomExtract对象的属性值 + sessionRandomExtract.getTaskId(), + // 获取任务ID + sessionRandomExtract.getSessionId(), + // 获取会话ID + sessionRandomExtract.getStartTime(), + // 获取开始时间 + sessionRandomExtract.getSearchKeyWords(), + // 获取搜索关键词 + sessionRandomExtract.getClick_category_ids() + // 获取点击的分类IDs }; - paramList.add(params); // 将参数数组添加到列表中 + paramList.add(params); + // 将参数数组添加到列表中 } - JDBCHelper.getInstance().excuteBatch(sql,paramList); // 调用JDBCHelper的excuteBatch方法执行批量SQL更新(注意:这里应该是executeBatch) + JDBCHelper.getInstance().excuteBatch(sql,paramList); + // 调用JDBCHelper的excuteBatch方法执行批量SQL更新(注意:这里应该是executeBatch) } } \ No newline at end of file diff --git a/src/main/java/cn/edu/hust/dao/impl/TaskDaoImpl.java b/src/main/java/cn/edu/hust/dao/impl/TaskDaoImpl.java index a84d06b..3ca2293 100644 --- a/src/main/java/cn/edu/hust/dao/impl/TaskDaoImpl.java +++ b/src/main/java/cn/edu/hust/dao/impl/TaskDaoImpl.java @@ -1,38 +1,64 @@ -package cn.edu.hust.dao.impl; // 定义包名,表示这个类属于cn.edu.hust.dao.impl包 +package cn.edu.hust.dao.impl; +// 定义包名,表示这个类属于cn.edu.hust.dao.impl包 -import cn.edu.hust.dao.TaskDao; // 导入TaskDao接口 -import cn.edu.hust.domain.Task; // 导入Task实体类 -import cn.edu.hust.jdbc.JDBCHelper; // 导入JDBCHelper类,用于数据库操作 +import cn.edu.hust.dao.TaskDao; +// 导入TaskDao接口 +import cn.edu.hust.domain.Task; +// 导入Task实体类 +import cn.edu.hust.jdbc.JDBCHelper; +// 导入JDBCHelper类,用于数据库操作 -import java.sql.ResultSet; // 导入ResultSet类,用于处理查询结果 -import java.sql.SQLException; // 导入SQLException类,用于处理SQL异常 +import java.sql.ResultSet; +// 导入ResultSet类,用于处理查询结果 +import java.sql.SQLException; +// 导入SQLException类,用于处理SQL异常 -public class TaskDaoImpl implements TaskDao { // 定义TaskDaoImpl类,实现TaskDao接口 - @Override // 覆盖接口中的方法 - public Task findTaskById(Long id) { // 定义findTaskById方法,根据ID查找任务 - String sql="select * from task where task_id=?"; // 定义查询SQL语句 - final Task task=new Task(); // 创建Task对象,用于存储查询结果 - JDBCHelper.getInstance().excuteQuery(sql, new Object[]{id}, new JDBCHelper.QueryCallBack() { // 调用JDBCHelper的excuteQuery方法执行查询 +public class TaskDaoImpl implements TaskDao { + // 定义TaskDaoImpl类,实现TaskDao接口 + @Override + // 覆盖接口中的方法 + public Task findTaskById(Long id) { + // 定义findTaskById方法,根据ID查找任务 + String sql="select * from task where task_id=?"; + // 定义查询SQL语句 + final Task task=new Task(); + // 创建Task对象,用于存储查询结果 + JDBCHelper.getInstance().excuteQuery(sql, new Object[]{id}, new JDBCHelper.QueryCallBack() { + // 调用JDBCHelper的excuteQuery方法执行查询 @Override - public void process(ResultSet rs) { // 定义process方法,处理查询结果 + public void process(ResultSet rs) { + // 定义process方法,处理查询结果 try { - if(rs.next()) // 如果查询结果有数据 + if(rs.next()) + // 如果查询结果有数据 { - Long id=rs.getLong(1); // 获取任务ID - String taskName=rs.getString(2); // 获取任务名称 - String createTime=rs.getString(3); // 获取创建时间 - String startTime=rs.getString(4); // 获取开始时间 - String finishTime=rs.getString(5); // 获取完成时间 - String taskType=rs.getString(6); // 获取任务类型 - String taskStatus=rs.getString(7); // 获取任务状态 - String taskParam=rs.getString(8); // 获取任务参数 - task.set(id,taskName,createTime,startTime,finishTime,taskType,taskStatus,taskParam); // 设置Task对象的属性 + Long id=rs.getLong(1); + // 获取任务ID + String taskName=rs.getString(2); + // 获取任务名称 + String createTime=rs.getString(3); + // 获取创建时间 + String startTime=rs.getString(4); + // 获取开始时间 + String finishTime=rs.getString(5); + // 获取完成时间 + String taskType=rs.getString(6); + // 获取任务类型 + String taskStatus=rs.getString(7); + // 获取任务状态 + String taskParam=rs.getString(8); + // 获取任务参数 + task.set(id,taskName,createTime,startTime,finishTime,taskType,taskStatus,taskParam); + // 设置Task对象的属性 } - } catch (SQLException e) { // 捕获并处理SQLException - e.printStackTrace(); // 打印异常堆栈信息 + } catch (SQLException e) { + // 捕获并处理SQLException + e.printStackTrace(); + // 打印异常堆栈信息 } } }); - return task; // 返回Task对象 + return task; + // 返回Task对象 } } \ No newline at end of file diff --git a/src/main/java/cn/edu/hust/dao/impl/Top10CategoryDaoImpl.java b/src/main/java/cn/edu/hust/dao/impl/Top10CategoryDaoImpl.java index 0800d80..5db732e 100644 --- a/src/main/java/cn/edu/hust/dao/impl/Top10CategoryDaoImpl.java +++ b/src/main/java/cn/edu/hust/dao/impl/Top10CategoryDaoImpl.java @@ -1,41 +1,72 @@ -package cn.edu.hust.dao.impl; // 定义包名,表示这个类属于cn.edu.hust.dao.impl包 +package cn.edu.hust.dao.impl; +// 定义包名,表示这个类属于cn.edu.hust.dao.impl包 -import cn.edu.hust.dao.Top10CategoryDao; // 导入Top10CategoryDao接口 -import cn.edu.hust.domain.Top10Category; // 导入Top10Category实体类 -import cn.edu.hust.jdbc.JDBCHelper; // 导入JDBCHelper类,用于数据库操作 +import cn.edu.hust.dao.Top10CategoryDao; +// 导入Top10CategoryDao接口 +import cn.edu.hust.domain.Top10Category; +// 导入Top10Category实体类 +import cn.edu.hust.jdbc.JDBCHelper; +// 导入JDBCHelper类,用于数据库操作 -import java.util.ArrayList; // 导入ArrayList类,用于创建列表 -import java.util.List; // 导入List接口 +import java.util.ArrayList; +// 导入ArrayList类,用于创建列表 +import java.util.List; +// 导入List接口 -public class Top10CategoryDaoImpl implements Top10CategoryDao { // 定义Top10CategoryDaoImpl类,实现Top10CategoryDao接口 - @Override // 覆盖接口中的方法 - public void insert(Top10Category top10Category) { // 定义insert方法,用于插入单个Top10Category对象 - String sql="insert into top10_category values(?,?,?,?,?)"; // 定义插入SQL语句 - Object[] params=new Object[]{ // 创建一个对象数组,用于存储Top10Category对象的属性值 - top10Category.getTaskId(), // 获取任务ID - top10Category.getCategoryId(), // 获取分类ID(注意:这里代码中重复了两次,可能是错误) - top10Category.getCategoryId(), // 重复的分类ID - top10Category.getClickCount(), // 获取点击次数 - top10Category.getOrderCount(), // 获取订单次数 - top10Category.getPayCount() // 获取支付次数 +public class Top10CategoryDaoImpl implements Top10CategoryDao { + // 定义Top10CategoryDaoImpl类,实现Top10CategoryDao接口 + @Override + // 覆盖接口中的方法 + public void insert(Top10Category top10Category) { + // 定义insert方法,用于插入单个Top10Category对象 + String sql="insert into top10_category values(?,?,?,?,?)"; + // 定义插入SQL语句 + Object[] params=new Object[]{ + // 创建一个对象数组,用于存储Top10Category对象的属性值 + top10Category.getTaskId(), + // 获取任务ID + top10Category.getCategoryId(), + // 获取分类ID(注意:这里代码中重复了两次,可能是错误) + top10Category.getCategoryId(), + // 重复的分类ID + top10Category.getClickCount(), + // 获取点击次数 + top10Category.getOrderCount(), + // 获取订单次数 + top10Category.getPayCount() + // 获取支付次数 }; - JDBCHelper.getInstance().excuteUpdate(sql,params); // 调用JDBCHelper的excuteUpdate方法执行SQL更新(注意:这里应该是executeUpdate) + JDBCHelper.getInstance().excuteUpdate(sql,params); + // 调用JDBCHelper的excuteUpdate方法执行SQL更新(注意:这里应该是executeUpdate) } - @Override // 覆盖接口中的方法 - public void batchInsert(List top10CategoryList) { // 定义batchInsert方法,用于批量插入Top10Category对象 - String sql="insert into top10_category values(?,?,?,?,?)"; // 定义插入SQL语句 - List paramList=new ArrayList(); // 创建一个列表,用于存储每个Top10Category对象的参数数组 - for (Top10Category top10Category:top10CategoryList) { // 遍历传入的Top10Category对象列表 - Object[] params=new Object[]{ // 创建一个对象数组,用于存储当前Top10Category对象的属性值 - top10Category.getTaskId(), // 获取任务ID - top10Category.getCategoryId(), // 获取分类ID - top10Category.getClickCount(), // 获取点击次数 - top10Category.getOrderCount(), // 获取订单次数 - top10Category.getPayCount() // 获取支付次数 + @Override + // 覆盖接口中的方法 + public void batchInsert(List top10CategoryList) { + // 定义batchInsert方法,用于批量插入Top10Category对象 + String sql="insert into top10_category values(?,?,?,?,?)"; + // 定义插入SQL语句 + List paramList=new ArrayList(); + // 创建一个列表,用于存储每个Top10Category对象的参数数组 + for (Top10Category top10Category:top10CategoryList) { + // 遍历传入的Top10Category对象列表 + Object[] params=new Object[]{ + // 创建一个对象数组,用于存储当前Top10Category对象的属性值 + top10Category.getTaskId(), + // 获取任务ID + top10Category.getCategoryId(), + // 获取分类ID + top10Category.getClickCount(), + // 获取点击次数 + top10Category.getOrderCount(), + // 获取订单次数 + top10Category.getPayCount() + // 获取支付次数 }; - paramList.add(params); // 将参数数组添加到列表中 + paramList.add(params); + // 将参数数组添加到列表中 } - JDBCHelper.getInstance().excuteBatch(sql,paramList); // 调用JDBCHelper的excuteBatch方法执行批量SQL更新(注意:这里应该是executeBatch) + JDBCHelper.getInstance().excuteBatch(sql,paramList); + // 调用JDBCHelper的excuteBatch方法执行批量SQL更新(注意:这里应该是executeBatch) } } \ No newline at end of file diff --git a/src/main/java/cn/edu/hust/dao/impl/Top10CategorySessionDaoImpl.java b/src/main/java/cn/edu/hust/dao/impl/Top10CategorySessionDaoImpl.java index 2207e26..b072b20 100644 --- a/src/main/java/cn/edu/hust/dao/impl/Top10CategorySessionDaoImpl.java +++ b/src/main/java/cn/edu/hust/dao/impl/Top10CategorySessionDaoImpl.java @@ -1,28 +1,47 @@ -package cn.edu.hust.dao.impl; // 定义包名,表示这个类属于cn.edu.hust.dao.impl包 +package cn.edu.hust.dao.impl; +// 定义包名,表示这个类属于cn.edu.hust.dao.impl包 -import cn.edu.hust.dao.Top10CategorySessionDao; // 导入Top10CategorySessionDao接口 -import cn.edu.hust.domain.Top10CategorySession; // 导入Top10CategorySession实体类 -import cn.edu.hust.jdbc.JDBCHelper; // 导入JDBCHelper类,用于数据库操作 +import cn.edu.hust.dao.Top10CategorySessionDao; +// 导入Top10CategorySessionDao接口 +import cn.edu.hust.domain.Top10CategorySession; +// 导入Top10CategorySession实体类 +import cn.edu.hust.jdbc.JDBCHelper; +// 导入JDBCHelper类,用于数据库操作 -import java.util.ArrayList; // 导入ArrayList类,用于创建列表 -import java.util.List; // 导入List接口 +import java.util.ArrayList; +// 导入ArrayList类,用于创建列表 +import java.util.List; +// 导入List接口 -public class Top10CategorySessionDaoImpl implements Top10CategorySessionDao // 定义Top10CategorySessionDaoImpl类,实现Top10CategorySessionDao接口 +public class Top10CategorySessionDaoImpl implements Top10CategorySessionDao +// 定义Top10CategorySessionDaoImpl类,实现Top10CategorySessionDao接口 { - @Override // 覆盖接口中的方法 - public void batchInsert(List top10CategorySessionList) { // 定义batchInsert方法,用于批量插入Top10CategorySession对象 - String sql="insert into top10_category_session values(?,?,?,?)"; // 定义插入SQL语句 - List paramList=new ArrayList(); // 创建一个列表,用于存储每个Top10CategorySession对象的参数数组 - for(Top10CategorySession top10CategorySession:top10CategorySessionList) // 遍历传入的Top10CategorySession对象列表 + @Override + // 覆盖接口中的方法 + public void batchInsert(List top10CategorySessionList) { + // 定义batchInsert方法,用于批量插入Top10CategorySession对象 + String sql="insert into top10_category_session values(?,?,?,?)"; + // 定义插入SQL语句 + List paramList=new ArrayList(); + // 创建一个列表,用于存储每个Top10CategorySession对象的参数数组 + for(Top10CategorySession top10CategorySession:top10CategorySessionList) + // 遍历传入的Top10CategorySession对象列表 { - Object[] param=new Object[]{ // 创建一个对象数组,用于存储当前Top10CategorySession对象的属性值 - top10CategorySession.getTaskId(), // 获取任务ID - top10CategorySession.getCategoryId(), // 获取分类ID - top10CategorySession.getSessionId(), // 获取会话ID - top10CategorySession.getClickCount() // 获取点击次数 + Object[] param=new Object[]{ + // 创建一个对象数组,用于存储当前Top10CategorySession对象的属性值 + top10CategorySession.getTaskId(), + // 获取任务ID + top10CategorySession.getCategoryId(), + // 获取分类ID + top10CategorySession.getSessionId(), + // 获取会话ID + top10CategorySession.getClickCount() + // 获取点击次数 }; - paramList.add(param); // 将参数数组添加到列表中 + paramList.add(param); + // 将参数数组添加到列表中 } - JDBCHelper.getInstance().excuteBatch(sql,paramList); // 调用JDBCHelper的excuteBatch方法执行批量SQL更新(注意:这里应该是executeBatch) + JDBCHelper.getInstance().excuteBatch(sql,paramList); + // 调用JDBCHelper的excuteBatch方法执行批量SQL更新(注意:这里应该是executeBatch) } } \ No newline at end of file diff --git a/src/main/java/cn/edu/hust/demo/Singleton.java b/src/main/java/cn/edu/hust/demo/Singleton.java index 900bb7a..7b3910d 100644 --- a/src/main/java/cn/edu/hust/demo/Singleton.java +++ b/src/main/java/cn/edu/hust/demo/Singleton.java @@ -1,59 +1,62 @@ package cn.edu.hust.demo; +// 定义包名,表示这个类属于cn.edu.hust.demo包 /** * 单例模式几种实现方式 */ public class Singleton { + // 定义Singleton类,用于实现单例模式 /** * 饿汉模式实现单例模式,线程安全 */ - /** - private static Singleton instance=new Singleton(); - private Singleton() - { - + /* + private static Singleton instance = new Singleton(); // 在类加载时就创建实例,实现线程安全 + private Singleton() { + // 私有化构造函数,防止外部通过new创建实例 } - public static Singleton getInstance() - { + public static Singleton getInstance() { return instance; - }*/ + // 提供全局访问点 + } + */ /** * 懒汉模式实现单例模式 线程不安全的写法 - - private static Singleton instance=null; - private Singleton() - { - + */ + /* + private static Singleton instance = null; // 实例化延后到第一次使用时 + private Singleton() { + // 私有化构造函数,防止外部通过new创建实例 } - public static Singleton getInstance() - { - if(instance==null) instance=new Singleton(); + public static Singleton getInstance() { + if (instance == null) instance = new Singleton(); + // 线程不安全,可能存在多个实例 return instance; - }*/ + } + */ /** * 懒汉模式线程安全的写法 */ - private static Singleton instance=null; - private Singleton() - { - + private static Singleton instance = null; + // 实例化延后到第一次使用时 + private Singleton() { + // 私有化构造函数,防止外部通过new创建实例 } - public static Singleton getInstance() - { - if(instance==null) - { - synchronized (Singleton.class) - { - if(instance==null) - { - instance=new Singleton(); + public static Singleton getInstance() { + if (instance == null) { + // 第一次检查,避免不必要的同步 + synchronized (Singleton.class) { + // 同步块,确保线程安全 + if (instance == null) { + // 第二次检查,确保只有一个实例被创建 + instance = new Singleton(); + // 创建实例 } } - } return instance; + // 返回唯一实例 } -} +} \ No newline at end of file