SSM问题总结

1 RequestBody映射类字段失败

  • 原因
    RequestBody不能解析类对应大写字母开头的字段.
  • 解决
    (1)大写字母开头的字段,替换为小写字母头.
    (2)使用Map类型接收json数据.

2 AOP切片失效

  • 原因
    Service注解不能新建对象.
  • 解决
    在xml配置文件中加入bean配置类.
<bean id="testDataImpl" class="com.TestDataImpl">

同时使用Qulalifier注解验证使用类:Qualifier(“testDataImpl”)

3 多数据源配置失效

  • 原因
    数据源bean id重复
  • 解决
    修改数据源bean id为不同命名.

4 启动失败

Destroying ProtocolHandler [“ajp-nio-8009”]

5 @Value取值为null

  • 原因
    @Value取值为null,两种情况:对象没有放到Spring容器,通过new新建的对象,没有使用@Component注解.

  • 解决
    通过@Autowired新建对象,将对象交给Spring容器;
    类上添加@Component注解

6 @Value无法解析字符串

Could not resolve placeholder ‘data’ in string value “${data}”

  • 原因
    未知
  • 方案
    重启IDEA或VS Code或PC.

7 MyBatis保存MySQL数据失败

Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: ‘\xAC\xED\x00\x05sr\x00\x0Djava.time.Ser\x95]\x84\xBA\x1B"H\xB2\x0C\x00\x00xpw\x0A\x05\x00\x00\x07\xE4\x08\x03\x107\xF6x’ for column ‘offline_time’ at row 1
; SQL []; Data truncation: Incorrect datetime value: ‘\xAC\xED\x00\x05sr\x00\x0Djava.time.Ser\x95]\x84\xBA\x1B"H\xB2\x0C\x00\x00xpw\x0A\x05\x00\x00\x07\xE4\x08\x03\x107\xF6x’ for column ‘offline_time’ at row 1; nested exception is com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: ‘\xAC\xED\x00\x05sr\x00\x0Djava.time.Ser\x95]\x84\xBA\x1B"H\xB2\x0C\x00\x00xpw\x0A\x05\x00\x00\x07\xE4\x08\x03\x107\xF6x’ for column ‘offline_time’ at row 1] with root cause
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: ‘\xAC\xED\x00\x05sr\x00\x0Djava.time.Ser\x95]\x84\xBA\x1B"H\xB2\x0C\x00\x00xpw\x0A\x05\x00\x00\x07\xE4\x08\x03\x107\xF6x’ for column ‘offline_time’ at row 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3534)

  • 原因
    MySQL驱动版本过低,问题版本为5.1.8
    MyBatis版本过低3.4.2
  • 方案
    提高MySQL版本,5.1.37及以上

8 MyBatis缺少属性No typehandler found for property

[org.springframework.web.context.ContextLoaderListener]
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘sqlSessionFactory’ defined in file [/home/xdq/.config/Code/User/workspaceStorage/75c69db3bc38ad03a2a3dc619135a421/adashen.vscode-tomcat/tomcat/apache-tomcat-8.5.47/webapps/data_display/WEB-INF/classes/spring/applicationContext-mybatis.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: ‘file [/home/xdq/.config/Code/User/workspaceStorage/75c69db3bc38ad03a2a3dc619135a421/adashen.vscode-tomcat/tomcat/apache-tomcat-8.5.47/webapps/data_display/WEB-INF/classes/mybatis/mappers/DeviceOnOffLineDetailMapper.xml]’; nested exception is org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause: java.lang.IllegalStateException: No typehandler found for property offlineTime

  • 原因
    MyBatis版本低,且未配置jsr310及typeHandler.

  • 方案
    提高MyBatis版本,3.5.5,包括jsr310及typeHandler
    若MyBatis为3.4.0版本,添加依赖:

<dependency>
	<groupId>org.mybatis</groupId>
	<artifactId>mybatis-typehandlers-jsr310</artifactId>
	<version>1.0.1</version>
</dependency> 

9 MyBatis与LocalDateTime

9.1 MyBatis无法解析LocalDateTime

Could not resolve type alias ‘org.apache.ibatis.type.LocalDateTimeTypeHandler’

  • 原因
    SSM中MyBatis版本较低,无法解析Java8 LocalDateTime
  • 方案
    使用Date替代LocalDateTime.

9.2 时间转化

import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;

SSM使用Date做时间映射,@JsonFormat解析Body入参时间字符串,@DateTimeFormat解析form-data入参时间字符串;
SpringBoot可使用LocalDateTime做时间映射.

10 MySQL写入数据Closed

  • 原因
    数据表未添加自增主键
  • 方案
    数据表添加自增主键

【参考文献】
[1]https://www.cnblogs.com/taohaijun/p/11232085.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天然玩家

坚持才能做到极致

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值