zoukankan      html  css  js  c++  java
  • com.mysql.jdbc.MysqlDataTruncation:Data Truncation:Data too long for column '字段name' at row 1

    1.问题描述:

      在mysql插入数据的时候报错:Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'xxx_name' at row 1

    严重: Servlet.service() for servlet default threw exceptio
    com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'xxx_name' at row 1
     at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2868)
     at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)   
     at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1160)
     at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:685)
     at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1400)
     at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1314)
     at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1299)
     at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeUpdate(NewProxyPreparedStatement.java:105)
     at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:745)
     at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:538)
     at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:739)
     at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:797)
     at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:805)
     at com.bester.blog.dao.impl.UserDAOImpl.add(UserDAOImpl.java:25)
     at com.bester.blog.service.impl.UserServiceImpl.add(UserServiceImpl.java:12)
     at com.bester.blog.web.action.UserAction.add(UserAction.java:30)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:597)

    2.问题分析:

      从字面意思看,是字段长度不够。即使设置为了text还是不够,因为text类型是可变长度的字符串,最多65535个字符,所有,最好是把字段类型设置为longtext,最多存放4294967295个字符

      步骤:进入mysql,use你要改变的数据库,执行语句:alter table testTable modify column xxx_name longtext;

      重启mysql,linux下语句:service mysqld restart

      但是,我的xxx_name字段设置的是varchar(50),而输入的没几个字;

      原因在于:建表的时候,表的编码和字段编码都是默认的latin1,设置为utf8后,问题解决。修改utf-8编码

  • 相关阅读:
    el-select下拉框选项太多导致卡顿,使用下拉框分页来解决
    vue+elementui前端添加数字千位分割
    Failed to check/redeclare auto-delete queue(s)
    周末啦,做几道面试题放松放松吧!
    idea快捷键
    解决flink运行过程中报错Could not allocate enough slots within timeout of 300000 ms to run the job. Please make sure that the cluster has enough resources.
    用.net平台实现websocket server
    MQTT实战3
    Oracle 查看当前用户下库里所有的表、存储过程、触发器、视图
    idea从svn拉取项目不识别svn
  • 原文地址:https://www.cnblogs.com/zs-notes/p/9442605.html
Copyright © 2011-2022 走看看