zoukankan      html  css  js  c++  java
  • 知识点 小结

    项目里小知识点记录一下。

    ◆◆◆◆◆◆Mybatis◆◆◆◆◆◆

    1.mybatis中,使用foreach等动态标签时,外部不能用CDATA tag。

    2.CDATA 标签作用

    增加sql可读性。如果不使用CDATA标签的话,sql中特殊字符(“<” 或是”>”  .etc)需要进行转移符处理。

    3.mapper.xml文件中,使用注释时,注释之中不能使用#{}.  如下:

    --Table.Column = #{}  

    虽说使用了--进行了注释,但是sql参数binding、设置时,仍然会报错。

    4.执行下列sql时,更新80条以上的数据时,出现参数过多的error

    sql如下:

    Mapper.xml

    foreach语句↓
    1
    insert into table A 2 (a,b,c,d,e...,z) // 实际是50个字段 3 values 4 (#{A},#{B},#{C},#{D}...#{Z},) // 实际是50个字段

    我的db:Sybase(我也第一次听这个db,说是项目里和SAP的东西兼容,所以项目选了这个db,但是这个db比较坑啊,很多常用的函数啊,或是with语句等,都没有,不可以用。我哭)

    解决办法:

    将更新的结果集,分成小的,每个小于80条的结果集。这样就可以成功插入了。

    分割的方法(可以使用Guava的api将list进行分割):

    1     List<User> users = userService.findAll();
    2     //每50个一组
    3     List<List<User>> parts = Lists.partition(users, 50);
    4     parts.stream().forEach(list -> {
    5     process(list);
    6     });

     5.Unsupported SQLtype 1111

     Sybase 的官方驱动 jConnect4结合myBatis使用时,发现如下问题,当insert或者update语句的变量含有null值,会报错:### Cause: java.sql.SQLException: JZ006: 捕获到 IO 例外:java.io.IOException: JZ0SL: 不受支持的 SQL 类型 1111。

    由于参数出现了null值,myBatis进行操作的时候,指定jdbcType类型的参数时,mybatis默认设置为jdbcType.OTHER,导致Sybase数据库无法识别此格式。

    解决方法:给参数加上jdbcType可解决(注意大小写) ,或是将null的情况避免掉
    insert into xxx(a,b) values(#{a,jdbcType=VARCHAR}, #{b,jdbcType=DATE})
    update xxx set a=#{a,jdbcType=VARCHAR} where id=#{id}

     

    ◆◆◆◆◆◆Maven◆◆◆◆◆◆

    1.Eclipse Maven dependency jar garyed out, can't import classes from it

    resolution:

    change <scope>test</scope>  to  <scope>compile</scope>

    ◆◆◆◆◆◆java◆◆◆◆◆◆

    1.文件中指定换行符和编码格式(日文)

    1         String[] fileContent = new String[] {};
    // encoding这里指定的是"MS932",它是日语文字的编码。
    2 try (OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(""), "MS932")) { 3 for (String content : fileContent) { 4 writer.write(content);
               // 在这里可以明确指定换行符号,不会随着环境(windows or lunix)的改变而变化
    5 writer.write(" "); 6 } 7 } catch (IOException ex) { 8 // to do 9 }

    关于日语encoding的编码,这里有个链接,大家可以具体看一下,看过之后,可以理解日语encoding的一个变化历程。

    http://una.soragoto.net/topics/13.html

    2.在金融系统中,java中关于金钱方便的数值建议使用BigDecimal类型。

    ◆◆◆◆◆◆Lunix◆◆◆◆◆◆

    1.查看使用process情况

    ps -aux

    2.性能命令

    top

    vmstat

    ◆◆◆◆◆◆others◆◆◆◆◆◆

    1.项目架构

    JBoss(wildfly 18)

    Spring,mybatis 3.4.6,Spring-boot ,Guava,Spring-data

    Java 11.0.4

    Red Hat Enterprise Linux Server 7.6(Maipo)

    Front-end:

    Thymeleaf,Js,CSS,HTML5

  • 相关阅读:
    Manjaro中添加gitee的公钥部署
    另类的linux系统
    mac的快捷键flykey应用
    tidb总览
    raft算法
    tidb的tidb
    tidb的tikv
    tidb的pd
    切尔诺贝利事故
    血钻
  • 原文地址:https://www.cnblogs.com/lihao007/p/13287983.html
Copyright © 2011-2022 走看看