五一放假归来,把需求开发都补一补
- mybatis添加之后通过getId的方法获取添加对象的id有两种方式:
- 在标签也添加
useGeneratedKeys=“true” keyProperty="id - 在insert标签内部,insert语句之前加上
<selectKey keyProperty="id" order="AFTER"
resultType="java.lang.Long"> SELECT LAST_INSERT_ID()</selectKey>
发现这个其实非常的偶然,公司遇到一个一次性添加1W+条数据的需求,本地实测时间需要5分钟(数据库不在本地)。后来我通过DruidStat的sql检测功能,发现有一条SELECT LAST_INSERT_ID()重复执行了2分多钟,效率很低。
所以就上网查了一下资料,原来公司获得主键的方式一直用的第二种方式(逆向工程中如此)。改为了第一种方式后效率显著提升。推荐用第一种方式。
- 解决SpringMvc接收Date类型参数格式转化以及时间差8小时的方案:
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8") //出参格式化
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//入参格式化
这样就可以通过前端/app就可以通过 yyyy-MM-dd HH:mm:ss 的格式进行传值赋给Date类型,并且不存在8小时问题。
详情见:参考资料