Data too long for column 'content' ?
解决方案 »
- JavaWeb中常用的WEB服务器有哪些?
- java中的Field的应用 求助
- 请教一个关于DataInputStream(System.in)的问题
- 只有一台服务器,但要运行java项目和asp.net项目
- hibernate 并发控制问题
- 崩溃了,servlet求助
- java 上传文件种类?有几种?
- 带格式的字符串
- 怎样删除jsp临时文件,我用jbuider9编写jsp时,有时候改动了jsp文件但是运行时不能生效(即显示改动后的效果),我想删除jsp临时文件应该
- J2EE连接AccessXP的问题
- struts2中select和optiontransferselect联动问题
- 请问如何在Hibernate中由*.hbm.xml生成数据库脚本呀
我的content只写几个字,也会抛出这个异常真奇怪了
你先看看第一个异常发生的可能原因是什么?谢谢
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("添加成功!");
错误原因: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
我把插入的中文改成英文后就可以插入,没有任何异常
但是在后面添加编码方式后用中文还是不行
而且我在安装数据库时已经指定编码方式为GBK了
<property name="connection.url">
jdbc:mysql://localhost:3306/bbs?useUnicode=true&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
添加成功!
我还需要在哪些地方修改呢?
在安装MYSQL的时候已经指定编码方式为GBK
在my.ini里面也有这句
[mysql]
default-character-set=gbk
然后在MySQL Query Browser里面把表也编码设为gbk了还是不行
以前用默认的编码还能在控制台插入中文
现在改了竟然不能插入中文了
....好郁闷啊!
我还缺少什么没有设置吗?各位高人能给我指点一下吗?
怎么解决MYSQL插入中文问题?
我是用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的问题好吗?
先谢谢了