整合spring,struts,ext做一个系统,连接的是mysql数据库,插入数据时,控制台报:
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'user_name' at row 1
错误,具体信息如下:
严重: Servlet.service() for servlet default threw exceptio
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'user_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)
........................
看着这错误信息,怎么有似曾相识的感觉呢。但就是记不起来了。根据字面意思,一位是输入超出范围了。但我的user_name字段设置的是varchar(45),只输入了三个中文,怎么可能超出呢?
google一下,一看到字符设置字眼,忽然想起以前碰到过这个问题的。只是早以到了九霄云外罢了。
原因在于:建表的时候,表的编码和字段编码都是默认的latin1,设置为utf8后,问题解决。
俗话说,人不能两次踏入同一条河流,我算破戒了。
分享到:
相关推荐
导入数据的时候,mysql报错 ERROR 1406 : Data too long for column Data too long for column
罗集比较全的数据库乱码问题的解决方案,,讲明了原因和解决方法
MySql.Data.dll 6.4.4 for .net 4.0
MySql.Data.dll 6.4.4 For .NET 2.0
mysql5.0乱码的解决实例:用代码方式实现乱码的解决! data too long for column........
提供了C#下的MySql操作 可以像操作Sqlserver一样的操作Mysql 有关具体操作细节 http://download.csdn.net/source/3555627
MySql.Data.dll For .Net .Net里面Mysql的链接操作库,赚分用啊,多谢大家!
MySQL 8 for Big Data 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书
MySql Data.dll .net2.0版本
MySql写入中文错误解决办法,对于导入中文, 数据老是报错"Data too long for column XX at row n
这个dll是直接从mysql官网下的(http://dev.mysql.com/downloads/windows/visualstudio/).支持.net 4.5。如果大家没有oracle账号,可以在这里下载
MySql.Data 版本6.9.9.0
用于mysql8.0版本的MySql.Data.dll类库,直接引用使用
MySql.Data.dll 6.4.4 for .net 2.0
MySQL.Data.EntityFrameworkCore,MySql.Data.EntityFramework,MySql.Data
MySQL Connector/Net ...在项目中引用组件:MySql.Data.dll (记得复制到本地中选择为true / 或直接把MySql.Data.dll复制到debug文件夹下) 在代码中 using MySql.Data.MySqlClient; ......接下来这里就看你表演了。
CSharp操作Mysql数据库需要的动态库,包含多个版本的MySql.Data.dll下载。
MySql.Data.dll 8.0.30最新版
Sqlguar的源码中对MySql.Data.dll 做了强引用,版本必须为6.2.1.0,否则会...NuGet中的是最新的,所以基本上不能用,会报错: 需要引用MySql.Data.dll,请在Nuget安装最新稳定版本,如果有版本兼容问题请先删除原有引用;