问题描述
在进行提交修改数据的时候,出现Error updating database. Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column ‘company_name’ at row 1 报错。
原因分析:
在网上找了几个博客,有的说错误很明显提示你长度不够你就加长呗。但是写入mysql的方法我是测试过的,没有出现过这种错误。还有一种说法是字符集不对,但是原因也比较多,让改数据库的my.ini文件,感觉不是很靠谱。突然想到是不是jsp和servlet传递数据出现了错误?
<%@ taglib prefix="c" uri="/jsp/jstl/core" %><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>修改信息</title></head>
解决方案:
post请求参数中文乱码解决方案
通过request直接设置字符集为utf-8,当然如果你的数据库是其他格式也可以设置为相应的字符集。
request.setCharacterEncoding("UTF-8");
get请求参数中文乱码解决方案
tomcat 8以后的版本,已将GEt请求乱码问题解决,设置默认的解码方式为UTF-8,当然如果你的数据库是其他格式也可以设置为相应的字符集。
tomcat 8以前的版本,处理方法是先编码再进行解码。
总结:
以上就是我所遇到的关于Data truncation: Data too long for column ‘XXX’ at row 1 报错问题的处理方式,希望对你有帮助。