问题-开发中遇到的坑

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后端技术的博客-CSDN博客

16.Object需要先转JSON,然后才能转JSONObject:  

for (JSONObject a : jsonArray){

JSONObject x = (JSONObject) JSON.toJSON(a)

list.add(x.get("k"))

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值