1.解决idea无法下载插件的问题
找到settings->system settings->updata下面的Use secure Connetion去掉,冒是因为使用了https协议下载导致的问题
2.SQLSERVER中mybatis无法将timestamp转换成date,报“不支持从 timestamp 到 DATE 的转换”
Base_Column_List中的字段转换一下CONVERT(datetime,rv) AS rv
3.mybatis中模糊查询不能用‘%#{name}%’
# 是起的占位符的作用,但是写在了字符串里面无法起到占位符的作用。这时我们要用 $,这是错的 like '%${name}%'
因为$会存在注入的风险,所以我们还是用字符串拼接吧 like '%' + #{name} + '%'
4.date类型日期输出格式转换
@JSONField(format = "yyyy-MM-dd HH:mm:ss")
private Date lastDate;
5.springMVC GET参数传递含特殊字符的时候接收会被自动转义,导致不是想要的参数
AlEkyFjnBhRKb2V%2bX9JqmBqL9fQlyrXbkvqzkoIFmPg%3d -> AlEkyFjnBhRKb2V+X9JqmBqL9fQlyrXbkvqzkoIFmPg=
用POST传递,@RequestBody 接收
6.sql中sum如果查询不到返回null,count查询不到返回0,所以sum的时候千万不能用int接收
7.java按照对象中中文名称进行排序
8.按照对象中时间进行排序
wechatAccountQueryOutList.sort(Comparator.comparing(WechatAccountQueryOut::getCreateTime).reversed());
取LIST最大值
Integer max = rankNumIntegerList.stream().reduce(Integer::max).get();
9.hive join on 条件 与 where 条件区别
1. select * from a left join b on a.id = b.id and a.dt=20181115;
2. select * from a left join b on a.id = b.id and b.dt=20181115;
3. select * from a join b on a.id = b.id and a.dt=20181115;
4. select * from a left join b on a.id = b.id where a.dt=20181115;
sql1: 如果是left join 在on上写主表a的条件不会生效,全表扫描。
sql2: 如果是left join 在on上写副表b的条件会生效,但是语义与写到where 条件不同
sql3: 如果是inner join 在on上写主表a、副表b的条件都会生效
sql4: 建议这么写,大家写sql大部分的语义都是先过滤数据然后再join ,所以在不了解 join on + 条件的情况下,条件尽量别写道on 后,直接写到where厚就ok了。
10.整数添加千分位符
DecimalFormat.getNumberInstance().format(callFailureNum)
11.从apolo读取的参数写单测为null无法赋值,可以用反射来赋值
@Value("${zhzs_statis_to_email}")
private String toEmailString;
@Value("${zhzs_statis_from_email}")
private String fromEmail;
//解析ftl文件获取邮件content
result = commonService.parsingFtlFile(data, "weekReport.ftl", "/templates/");
//发送邮件
String subject = "(" + statisQueryIn.getStartDate() + "-" + statisQueryIn.getEndDate() + ")统计";
String[] toEmail = toEmailString.split(",");
byte[] attachmentData = dealerExport(statisQueryIn);
commonService.sendHtmlMail(toEmail, fromEmail, subject, result, attachmentData, "累计商家明细列表.xls");
解决方法
Class<?> forName = Class.forName("xx.service.impl.ZhzsStatisEmailServiceImpl");
Field toEmailString = forName.getDeclaredField("toEmailString");
Field fromEmail = forName.getDeclaredField("fromEmail");
toEmailString.setAccessible(true);
fromEmail.setAccessible(true);
toEmailString.set(zhzsStatisEmailService, "xx@163.com,oo@126.com");
fromEmail.set(zhzsStatisEmailService, "xxoo@163.com");
Protocol<ZhzsEmailDataOut> result = zhzsStatisEmailService.sendZhzsDataEmail();
Assert.assertEquals(0, result.getReturncode());
12.byte[] bb 转字符串方式: new String(bb)
13.接收参数转换
用于将接受的expires_in转成expiresIn
@JsonProperty("expires_in")
private String expiresIn;
用于将接受的access_token转成accessToken
@JSONField(name="accessToken")
private String access_token;
13.MySQL多表关联UPDATE操作
select count(1) from A a
INNER JOIN B b
ON a.outer_recorder_id=b.outer_recorder_id AND a.service_type=b.service_type
WHERE b.type_name IS NOT NULL
and a.is_del=0 AND b.is_del=0
and a.check_status != 2
UPDATE A a
INNER JOIN B b
ON a.outer_recorder_id=b.outer_recorder_id AND a.service_type=b.service_type
SET a.check_status= 2
WHERE b.type_name IS NOT NULL
and a.is_del=0 AND b.is_del=0
and a.check_status != 2
14.gitlab合并冲突解决
Step 1. 获取并检出此合并请求的分支
git fetch origin
git checkout -b develop_znkfjituankanban_20210415 origin/develop_znkfjituankanban_20210415
Step 2. 本地审查变更
Step 3. 合并分支并修复出现的任何冲突
git checkout release_0420
git merge --no-ff develop_znkfjituankanban_20210415
Step 4. 推送合并的结果到 GitLab
git push origin release_0420
15.事务不起作用
@Transactional 注解失效的3种原因及解决办法_Java后端技术的博客-优快云博客
16.Object需要先转JSON,然后才能转JSONObject:
for (JSONObject a : jsonArray){
JSONObject x = (JSONObject) JSON.toJSON(a)
list.add(x.get("k"))
}