1.feign注解中没有URL/服务名是错误的 导致报错:找不到服务
2.测试环境测试时,接口看不到日志,但是页面可以看到接口的返回值 说明有其他机器注册到eureka中 配置文件register 调整为false
3.there is not getter for xxxx 重新编译打个包
4.Excel文件需要另存为为CSV文件,才可用plsql或者dbeaver 进行导入
5.oracle、java的12小时制与24小时制
oracle不缺乏大小写,所以通过数字格式来区分
YYYY-MM-DD HH24:MI:ss 24小时制
YYYY-MM-DD HH:MI:ss 12小时制
-- 2023-11-04 23:35:36 2023-11-04 11:35:36
select to_char(sysdate,'YYYY-MM-dd HH24:MI:ss'),to_char(sysdate,'YYYY-MM-dd HH:MI:ss') from dual;
java中yyyy-MM-dd HH:mm:ss 代表24小时制
HH表示24小时制,hh表示12小时制;
MM表示月,mm表示分钟;
6.同一方法尽量不要同时使用jpa和mybatis,且由于jpa有缓存,所以使用jpa进行写数据时,及时用flush()以真正写入数据库;
7.数据库中date、timestamp类型
date存储日期和时间的数据类型,不能精确到毫秒;
Timestamp存储日期、时间、时区的数据类型,可以精确到毫秒,毫秒的位数为0-9位,默认为6位;
create table test_oracle
(id VARCHAR2(32) not null,calDate date,startTime Timestamp,endTime Timestamp(0)
);
数据查询:
8.导入功能中,Excel中数据可全部读取(空行之后数据也可读取),只不过空行获取的row为空,后面需对该行的列信息进行非空判断
9.常量使用static final定义;enum成员变量用final修饰
10.判断两个字符串比较时,尽量用StringUtils.equals(),因为比较的两个数若为null,也不会报错,而用xx.equals(ss),若xx为null,则报空指针异常
11.oracle的check校验
-- test表创建一个约束test_check1,pt_id和asset_id只能二选一进行数据存储
alter test add constraint test_check1 check ((pt_id is not null and asset_id is null) or (pt_id is null and asset_id is not null));
12.stream流根据对象的某个属性进行去重
List<User> userList = new ArrayList<>();
//todo 补充数据
userList = userList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(User::getId))), ArrayList::new));
13.日志打印
- 打印日志直接打印e,不要e.getMessage();
- 日志打印 1.throws 抛异常前 2.逻辑只有if时,else中需要打印日志 3.不符合正常逻辑的要打印日志
14.idea中file文件打开时显示乱码
需要勾选 Settting->File Encodings的 Transparent native to-ascii conversion
15.SpringCloud项目中Feign.Response如何获取到结果集
由于三方接口这样定义的:
@RequestMapping(value = "/test",method = RequestMethod.POST)
Response test(@RequestParam(value = "type",required = false)String type,@RequestPart(value = "file") MultipartFile file);
在接收数据时,不可直接response.body().toString(),应该读取流;
Response response=xxxProxy.xxxService();
Response.Body body=response.body();
InputStream inputStream=body.asInputStream();
获取流中的json数据
16.@Component 的成员变量不可final,并指定默认值
在@component类中的成员变量 取当前时间,不可直接用 private final string xx=DateUtil.gettodaydate();
需要 初始化private String xx="",后在方法中 赋值;否则项目启动后,xx值一直是启动时的那个值,不会改变;