SpringMVC接收页面参数导致数据库报错的问

J2EE 码拜 10年前 (2015-04-16) 1066次浏览 0个评论
 
@RequestMapping(value = "/addgoods.jspx", method = RequestMethod.POST)
    public String stockin(GoodsInfo goods) {
        boolean flag =  miShopService.addgoods(goods);
        return null;
    }

将页面数据封装到GoodsInfo实体,然后插入数据库
INSERT INTO mishop.goods (NAME,CODE) VALUES (?,?)

报错:
HTTP Status 500 – Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [INSERT INTO mishop.goods (NAME,CODE) VALUES (?,?)]; Data truncation: Data too long for column “”code”” at row 1; nested exception is com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column “”code”” at row 1

数据库code字段的为varchar(100),页面接收的是数据是”0001″,明显没有超长。GoodsInfo实体中code的类型也是String

页面编码格式为:
<%@ page language=”java” contentType=”text/html; charset=UTF-8″
    pageEncoding=”UTF-8″%>

数据库和数据库表的编码格式都是UTF-8  utf8_general_ci,引擎为InnoDB.

求教大神这是怎么回事?求解决方法,叩谢。

SpringMVC接收页面参数导致数据库报错的问
30分
 没碰到过这种问题,提供下我的思路给楼主参考吧
1、System.out.println(goods.getCode())看看接参到底有没有问题
2、拿sql去数据库里执行看看有没有问题
3、再看看编码问题,是不是都统一编码了
4、以上都不行再来求助

SpringMVC接收页面参数导致数据库报错的问
5分
远程调试一下就ok…
SpringMVC接收页面参数导致数据库报错的问
5分
页面接收的是数据是”0001″?这是你在后台调试看到的结果吗?
SpringMVC接收页面参数导致数据库报错的问
引用 1 楼 u012345283 的回复:

 没碰到过这种问题,提供下我的思路给楼主参考吧
1、System.out.println(goods.getCode())看看接参到底有没有问题
2、拿sql去数据库里执行看看有没有问题
3、再看看编码问题,是不是都统一编码了
4、以上都不行再来求助

已经解决了,哈哈,我getCode()的时候,选择提示的方法,选错了,弄成getClass()了


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明SpringMVC接收页面参数导致数据库报错的问
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!