Data too long for column 'content' ?

解决方案 »

  1.   

    那个是在下面找到的另一个错误,可以先不看
    我的content只写几个字,也会抛出这个异常真奇怪了
    你先看看第一个异常发生的可能原因是什么?谢谢
      

  2.   

    对了我的插入代码是:
                      Responses r=new Responses();
    ResponseDAO dao=new ResponseDAO();
    r.setTitle("i have m");
    r.setContent("好啊");
    r.setOwner("kk");
    r.setTime(new Date());
    r.setTopicId(4);
    dao.addResponse(r);
    System.out.println("添加成功!");
      

  3.   

    错误提示:org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
    错误原因:1,问题所在 客户端传过来的pwdquestion值不能保存到数据库 是因为 htm.xml配置文件没做相应的 配置
      2, htm.xml映射名字有误
      3,HQL语句中的字段与对象属性不相同包括大小写
      4,对象属性出现了大写字母
      5,最难发现的错误就客户端传过来的数据长度如果没有验证长度超过了数据库表段的长度限制
       特别是当数据为中文时很有可能超出限制比如在保存密码提示问题的时候
       以及一些非空限制等
       
       
    包含资源文件中message的页面如果出不来就直接先用IE打开一般会提示key对应的值不存在
    注意:一定要先把所有表都建立好了才能用自动生成ORM映射文件 因为如果其中有主外键关系的话过早
    映射会生成不完整的文件类似错误:
    %%%% Error Creating SessionFactory %%%%
    org.hibernate.MappingException: Could not read mappings from resource: 
    原因是:
     移动或在不同路径下有相同的hbm.xml配置文件或者中途做了变动,如果确定路径已经正确且没有重复文件
     还报错,就重新clean 下 问题解决 引用自http://blog.csdn.net/xiao_jiang51/archive/2007/05/20/1618020.aspx
      

  4.   

    应该是中文问题吧,你看下你的连接URL后面有没有加字符编码设置如:jdbc:mysql://localhost/soulong?characterEncoding=utf8还有就是数据库的表有没有设置成UTF8或GB2312
      

  5.   

    果然是中文问题 呵呵~谢谢了
    我把插入的中文改成英文后就可以插入,没有任何异常 
    但是在后面添加编码方式后用中文还是不行
    而且我在安装数据库时已经指定编码方式为GBK了
    <property name="connection.url">
    jdbc:mysql://localhost:3306/bbs?useUnicode=true&amp;characterEncoding=GBK
    </property>
    在用中文后还是有错误:
    下面是错误的全部代码:
    og4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
    log4j:WARN Please initialize the log4j system properly.
    Hibernate: select max(id) from responses
    Hibernate: insert into bbs.responses (title, content, owner, time, topicId, id) values (?, ?, ?, ?, ?, ?)
    org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
    at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
    at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:202)
    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
    at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297)
    at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
    at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)
    at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:333)
    at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
    at personal.hw.ResponseDAO.addResponse(ResponseDAO.java:16)
    at personal.hw.testMain.main(testMain.java:87)
    Caused by: java.sql.BatchUpdateException: Data truncation: Data too long for column 'content' at row 1
    at com.mysql.jdbc.ServerPreparedStatement.executeBatch(ServerPreparedStatement.java:652)
    at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
    at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195)
    ... 9 more
    添加成功!
    我还需要在哪些地方修改呢?
      

  6.   

    你先在数据库控制台用sql语句插入看看可以插进去么
      

  7.   

    我在网上找了一些方法
    在安装MYSQL的时候已经指定编码方式为GBK
    在my.ini里面也有这句
    [mysql]
    default-character-set=gbk
    然后在MySQL Query Browser里面把表也编码设为gbk了还是不行
    以前用默认的编码还能在控制台插入中文
    现在改了竟然不能插入中文了
    ....好郁闷啊!
    我还缺少什么没有设置吗?各位高人能给我指点一下吗?
    怎么解决MYSQL插入中文问题?
      

  8.   

    各位我问下,oracle不能插入中文该怎么办呢?
    我是用hibernate向oracle中插入的!
    如果直接在sqlplus中运行的话,能插入中文!关于mysql不支持中文的问题!
    我知道有两个解决方案:
    (1)在创建数据库的时候:如create database mydb default character set gb2312;
    (2)在mysql的安装目录下->找到my.ini文件将里面的两个
    default-character-set=latin1全部改成default-character-set=gb2312,
    不要改成gbk,自我认为gbk没有gb2312支持中文的效果好!麻烦大家解决一下oracle的问题好吗?
    先谢谢了