/** * @Auther: auggie * @Date: 2022/2/9 10:51 * @Description: TeacherMapper * @Version 1.0.0 */
时间: 2024-06-25 20:00:38 浏览: 133
<<
这段代码描述了一个名为"TeacherMapper"的类,由作者"Auggie"在2022年2月9日创建,版本号为1.0.0。TeacherMapper可能是某个软件项目中的一个映射器(Mapper),用于将数据从数据库、API或其他数据源转换为教师相关的对象模型,以便在应用程序中使用。这类工具通常在处理数据持久化和对象之间的数据绑定时非常有用。它可能包含方法来查询、映射和更新教师的信息。
相关问题
package com.xuecheng.framework.utils; import java.io.File; import java.util.Calendar; import java.util.Scanner; /** * @version 1.0 * @ClassName BatchCreateFolder * @Auther qzhou * @Date 2023/6/6 10:48 */ public class BatchCreateFolder { public static void main(String[] args) { //创建文件夹 createFolder(); } /** * 创建文件夹 */ private static void createFolder() { Scanner sc = new Scanner(System.in); System.out.println("请输入年份,enter结束: "); int year = Integer.parseInt(sc.nextLine()); //循环月份 for (int month = 1; month <= 12; month++) { //获取月份的天数 int numberOfDays; Calendar cal = Calendar.getInstance(); cal.set(Calendar.YEAR, year); cal.set(Calendar.MONTH, (month - 1)); cal.set(Calendar.DATE, 1); cal.roll(Calendar.DATE, -1); numberOfDays = cal.getActualMaximum(Calendar.DATE); //创建文件夹 String yearStr = String.valueOf(year); String monthStr = yearStr.concat(String.format("%02d", month)); String rootPath = "C:\\Users\\周青\\Desktop\\瑶瑶百天照"; for (int day = 1; day <= numberOfDays; day++) { String dayStr = monthStr.concat(String.format("%02d", day)); String path = rootPath.concat(yearStr).concat("\\").concat(monthStr).concat("\\").concat(dayStr) ; File file=new File(path); if(!file.exists()){//如果文件夹不存在 file.mkdirs();//创建文件夹 } } } System.out.println("创建完成"); } }解释每行代码意思
这段代码是一个 Java 程序,用于批量创建文件夹。下面是每行代码的解释:
1. `package com.xuecheng.framework.utils;`:声明类的包名为 `com.xuecheng.framework.utils`。
2. `import java.io.File;`:导入 `java.io` 包中的 `File` 类。
3. `import java.util.Calendar;`:导入 `java.util` 包中的 `Calendar` 类。
4. `import java.util.Scanner;`:导入 `java.util` 包中的 `Scanner` 类。
5. `public class BatchCreateFolder {`:声明一个公共类 `BatchCreateFolder`。
6. `public static void main(String[] args) {`:程序从这里开始执行,`args` 参数是一个字符串数组,用于传入命令行参数。
7. `createFolder();`:调用 `createFolder()` 方法。
8. `}`:`main` 方法的结束。
9. `private static void createFolder() {`:声明一个私有的静态方法 `createFolder()`。
10. `Scanner sc = new Scanner(System.in);`:创建一个 `Scanner` 对象 `sc`,用于从标准输入读取数据。
11. `System.out.println("请输入年份,enter结束: ");`:输出提示信息,让用户输入年份。
12. `int year = Integer.parseInt(sc.nextLine());`:从标准输入读取一行字符串,然后将它转换成整数类型,并赋值给 `year` 变量。
13. `for (int month = 1; month <= 12; month++) {`:从 1 循环到 12,表示每个月。
14. `int numberOfDays;`:声明一个整型变量 `numberOfDays`,表示每个月的天数。
15. `Calendar cal = Calendar.getInstance();`:获取一个 `Calendar` 对象 `cal`,表示当前时间。
16. `cal.set(Calendar.YEAR, year);`:将 `cal` 对象的年份设置为 `year`。
17. `cal.set(Calendar.MONTH, (month - 1));`:将 `cal` 对象的月份设置为 `month` 减去 1。
18. `cal.set(Calendar.DATE, 1);`:将 `cal` 对象的日期设置为 1。
19. `cal.roll(Calendar.DATE, -1);`:将 `cal` 对象的日期向前滚动一天,这样 `cal` 对象就表示当前月份的最后一天。
20. `numberOfDays = cal.getActualMaximum(Calendar.DATE);`:获取 `cal` 对象表示的月份的天数,赋值给 `numberOfDays` 变量。
21. `String yearStr = String.valueOf(year);`:将 `year` 转换成字符串类型,并赋值给 `yearStr` 变量。
22. `String monthStr = yearStr.concat(String.format("%02d", month));`:将 `month` 转换成两位数的字符串类型,并与 `yearStr` 拼接起来,赋值给 `monthStr` 变量。
23. `String rootPath = "C:\\Users\\周青\\Desktop\\瑶瑶百天照";`:声明一个字符串变量 `rootPath`,表示根目录的路径。
24. `for (int day = 1; day <= numberOfDays; day++) {`:从 1 循环到 `numberOfDays`,表示每个月的每一天。
25. `String dayStr = monthStr.concat(String.format("%02d", day));`:将 `day` 转换成两位数的字符串类型,并与 `monthStr` 拼接起来,赋值给 `dayStr` 变量。
26. `String path = rootPath.concat(yearStr).concat("\\").concat(monthStr).concat("\\").concat(dayStr);`:拼接文件夹的路径,以年份、月份和日期命名文件夹。
27. `File file = new File(path);`:创建一个 `File` 对象 `file`,表示文件夹对象。
28. `if (!file.exists()) {`:如果文件夹不存在。
29. `file.mkdirs();`:创建文件夹。
30. `}`:`if` 语句的结束。
31. `}`:`for` 循环的结束。
32. `}`:`createFolder()` 方法的结束。
33. `}`:`BatchCreateFolder` 类的结束。
修改完整版的sql存储(积分兑换脚本),改写出可执行的hive脚本create procedure "rptdev"."sp_wjq_jf_value_dhfz_show"( in @data_date integer default cast("dateformat"("now"()-1,'yyyymmdd') as integer), in @is_run_flag1 integer default 1, in @is_run_flag2 integer default 10 ) on exception resume /****************************************************************** -- Purpose : 兑换积分分析报表 -- Auther: xxx -- Date : 20210923 *******************************************************************/ begin declare @stat_date varchar(8); --统计日期 declare @month_id integer; --统计月份 declare @month_first_date varchar(8); --统计月的第一天 declare @month_last_date varchar(8); --统计月的最后一天 declare @last_month_first_date varchar(8); --上月的第一天 declare @last_month_last_date varchar(8); --上月的最后一天 declare @last_month integer; --上月 declare @last_last_month integer; --上上月 declare @last_month_this_day varchar(8); --上月当天 declare @last_year_this_month integer; --上年当月 declare @this_year_first_month integer; --本年首月 declare @last_year_last_month integer; --上年尾月 set @stat_date = convert(varchar(8),@data_date); set @month_id = @data_date/100; set @month_first_date = "dateformat"(@data_date,'yyyymm01'); --统计月的第一天 set @month_last_date = "dateformat"("dateadd"("dd",-1,"dateformat"("dateadd"("mm",1,@data_date),'yyyymm01')),'yyyymmdd'); --统计月的最后一天 set @last_month_first_date = "dateformat"("dateadd"("mm",-1,@data_date),'yyyymm01'); --上月第一天 set @last_month_last_date = "dateformat"("dateadd"("dd",-1,"dateformat"("dateadd"("mm",1,@data_date),'yyyymm01')),'yyyymmdd'); set @last_month = cast("dateformat"("dateadd"("month",-1,@data_date),'yyyymm') as integer); --上月 set @last_last_month = cast("dateformat"("dateadd"("month",-2,@data_date),'yyyymm') as integer); --上上月 set @last_month_this_day = "dateformat"("dateadd"("mm",-1,convert(date,@data_date)),'yyyymmdd'); --上月当天 set @last_year_this_month = convert(integer,"dateformat"("dateadd"("yy",-1,@last_month_this_day),'yyyymm')); --上年当月
--将存储过程改写成Hive脚本
--设置变量
SET data_date = from_unixtime(unix_timestamp()-86400,'yyyyMMdd');
SET is_run_flag1 = 1;
SET is_run_flag2 = 10;
--获取日期相关变量
SET stat_date = CAST(data_date AS VARCHAR(8));
SET month_id = CAST(data_date/100 AS INT);
SET month_first_date = CONCAT(SUBSTR(data_date, 1, 6), '01');
SET month_last_date = DATE_FORMAT(DATE_ADD(month_first_date, INTERVAL 1 MONTH), 'yyyyMMdd') - 1;
SET last_month_first_date = DATE_FORMAT(DATE_ADD(month_first_date, INTERVAL -1 MONTH), 'yyyyMMdd');
SET last_month_last_date = DATE_FORMAT(DATE_ADD(month_first_date, INTERVAL -1 DAY), 'yyyyMMdd');
SET last_month = CAST(DATE_FORMAT(DATE_ADD(data_date, INTERVAL -1 MONTH), 'yyyyMM') AS INT);
SET last_last_month = CAST(DATE_FORMAT(DATE_ADD(data_date, INTERVAL -2 MONTH), 'yyyyMM') AS INT);
SET last_month_this_day = DATE_FORMAT(DATE_ADD(data_date, INTERVAL -1 MONTH), 'yyyyMMdd');
SET last_year_this_month = CAST(DATE_FORMAT(DATE_ADD(last_month_this_day, INTERVAL -1 YEAR), 'yyyyMM') AS INT);
SET this_year_first_month = CAST(DATE_FORMAT(DATE_ADD(data_date, INTERVAL -MONTH(data_date) MONTH), 'yyyyMM') AS INT);
SET last_year_last_month = CAST(DATE_FORMAT(DATE_ADD(data_date, INTERVAL -1 YEAR), 'yyyyMM') AS INT);
--创建临时表
DROP TABLE IF EXISTS tmp_jf_value_dhfz_show;
CREATE TABLE tmp_jf_value_dhfz_show AS
SELECT
t1.cust_id,
t1.cust_name,
t2.channel_name,
t1.consume_value,
t1.exchange_value,
t1.this_month_value,
t1.last_month_value,
t1.last_last_month_value,
t1.last_year_this_month_value,
t1.this_year_first_month_value,
t1.last_year_last_month_value,
t1.month_id
FROM
(
--获取本月和上月的兑换积分数
SELECT
cust_id,
cust_name,
SUM(CASE WHEN consume_date >= month_first_date AND consume_date <= month_last_date THEN consume_value ELSE 0 END) AS consume_value,
SUM(CASE WHEN exchange_date >= month_first_date AND exchange_date <= month_last_date THEN exchange_value ELSE 0 END) AS exchange_value,
SUM(CASE WHEN consume_date >= last_month_first_date AND consume_date <= last_month_last_date THEN consume_value ELSE 0 END) AS last_month_value,
SUM(CASE WHEN exchange_date >= last_month_first_date AND exchange_date <= last_month_last_date THEN exchange_value ELSE 0 END) AS last_month_exchange_value,
SUM(CASE WHEN consume_date >= DATE_FORMAT(DATE_ADD(last_month_first_date, INTERVAL -1 MONTH), 'yyyyMMdd')
AND consume_date <= DATE_FORMAT(DATE_ADD(last_month_last_date, INTERVAL -1 MONTH), 'yyyyMMdd') THEN consume_value ELSE 0 END) AS last_last_month_value,
SUM(CASE WHEN consume_date >= DATE_FORMAT(DATE_ADD(last_month_this_day, INTERVAL -1 YEAR), 'yyyyMMdd')
AND consume_date <= DATE_FORMAT(DATE_ADD(last_month_this_day, INTERVAL -1 YEAR MONTH), 'yyyyMM') THEN consume_value ELSE 0 END) AS last_year_this_month_value,
SUM(CASE WHEN consume_date >= DATE_FORMAT(DATE_ADD(data_date, INTERVAL -MONTH(data_date) MONTH), 'yyyyMMdd')
AND consume_date <= month_last_date THEN consume_value ELSE 0 END) AS this_month_value,
SUM(CASE WHEN consume_date >= DATE_FORMAT(DATE_ADD(data_date, INTERVAL -1 YEAR), 'yyyyMM')
AND consume_date <= DATE_FORMAT(DATE_ADD(data_date, INTERVAL -1 MONTH), 'yyyyMM') THEN consume_value ELSE 0 END) AS last_year_last_month_value,
SUM(CASE WHEN consume_date >= DATE_FORMAT(DATE_ADD(data_date, INTERVAL -MONTH(data_date) MONTH), 'yyyyMM')
AND consume_date <= DATE_FORMAT(DATE_ADD(data_date, INTERVAL -1 MONTH), 'yyyyMM') THEN consume_value ELSE 0 END) AS this_year_first_month_value,
month_id
FROM
jf_value_detail
GROUP BY
cust_id,
cust_name,
month_id
) t1
LEFT JOIN
(
--获取渠道名称
SELECT
channel_id,
channel_name
FROM
channel_info
) t2
ON t1.channel_id = t2.channel_id;
--根据条件筛选记录
DROP TABLE IF EXISTS jf_value_dhfz_show;
CREATE TABLE jf_value_dhfz_show AS
SELECT
cust_id,
cust_name,
channel_name,
consume_value,
exchange_value,
this_month_value,
last_month_value,
last_last_month_value,
last_year_this_month_value,
this_year_first_month_value,
last_year_last_month_value,
month_id
FROM
tmp_jf_value_dhfz_show
WHERE
((is_run_flag1 = 1 AND consume_value > 0) OR (is_run_flag1 = 0))
AND ((is_run_flag2 = 10 AND channel_id = 10) OR (is_run_flag2 <> 10 AND channel_id <> 10));
--删除临时表
DROP TABLE IF EXISTS tmp_jf_value_dhfz_show;
阅读全文