知识点 小结

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

◆◆◆◆◆◆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("\r\n"); 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

posted @ 2020-07-12 12:33  Mr.袋鼠  阅读(249)  评论(0编辑  收藏  举报