周记录总结2

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)
);

 数据查询:

周记录总结2_第1张图片

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 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值一直是启动时的那个值,不会改变;

你可能感兴趣的:(工作中遇到的问题,oracle,java,idea)