com.mysql.jdbc.MysqlDataTruncation: Data truncation: Data too long for column 'uPwd' at row 1
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3489)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1564)
at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1485)
at com.db.DBManager.executeSql(DBManager.java:41)
at com.dao.user.UserMysqlDao.insertData(UserMysqlDao.java:61)
at com.business.Userbusiness.regUser(Userbusiness.java:21)
at com.servlet.RegServlet.doPost(RegServlet.java:37)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)

解决方案 »

  1.   

    你插入的数据比uPwd字段设置的最大长度大
      

  2.   

    你输入的'uPwd'长度超过了数据库'uPwd' 针对字段的长度
      

  3.   

    数据库字段类型错误,lz应该是插入文本类型的字段。应该重写MySQLDialect,然后方言那里设置成重写后的就可以了。
    具体原因应该是数据库blob和clob两种类型给闹的。你google一下吧。import java.sql.Types;import org.hibernate.Hibernate;
    import org.hibernate.dialect.MySQLDialect;public class BlobMySQLDialect extends MySQLDialect {
    public BlobMySQLDialect(){ 
            super(); 
            registerHibernateType(Types.LONGVARCHAR, Hibernate.TEXT.getName()); 
        }
    }
      

  4.   

    是这样的  楼主
    我估计 你写的代码 应该没有错。。而是你在测试的 时候 随便输入的 数字 
    结果因为 你在mysql 中定义的 那个字段的长度 不足以保存 楼主输入的  而造成的,,
    如果 楼主想避免这种情况的话。。可以再前台 用 js 限制 ,,
    或者 你把你的mysql  中那个 字段 的 长度 设置的足够大
      

  5.   

    too long   太长了  
      

  6.   

    LZ应该先补习下英语了.! 呵呵  程序的问题LS的同胞们都说得很清楚了!
      

  7.   

    这里我来说明一下,前面的人都是说“数据比数据库里面定义的字段长”,从日志信息上的英文翻译并没有错。但是我需要反驳一下。
    我遇到过这种问题,而且是经常能遇到,出现这种问题的原因很多
    1.建议你设置一下mysql的方言
    2.看似好像你在往数据库里插入文件之类的,那么我建议你不要把文件放到数据库里,但并不是上面说的什么“字段过长”之类的原因,具体的你可以查看一下mysql的相关文档,好像是mysql在支持存放文件这里有很多需要注意的地方。库里只存放文件路径,而是把文件放在你的WEBROOT之类的下面。
    3.配置文件配置的有问题也会出现这种报错,这会给你造成一个假象,就是其他的字段插入没有问题偏偏这个出现问题,这样你会误认为可能是设计数据库或着是存储过程出现了问题。其实并不然,就是你的配置文件出现了问题,或着是在代码上使用的数据类型。比如你的代码上使用的是int 还是 Integer。配置文件里写的是哪个? 我就是举个例子。
    除我说的这些情况之外可能还存在其他的,但是以我遇到过的这些经历来看,我说的第3点占了59%的可能,2占了30%,1占了10%。  上面的那些朋友说的“字段过长”占了1%。 请上面的人不要骂我,事实胜于雄辩。至少我经历过很多次。
    LZ GOOD LUCK ......