Data truncation: Data truncated for column 'sqDate' at row 1求高手解惑!

hawk_c_s_d_n 2012-09-12 12:40:26
public void testCreateBatch(){
List<WyGame> wygameList = new ArrayList<WyGame>();
for(int i = 1;i<11;i++){
WyGame wygame = new WyGame();
wygame.setGameName("xxxxxxxx");
wygame.setXlhType("xxxxxxxx");
wygame.setIsUsed("false");
String xlh = "xxxxxxxxxxxxx";
wygame.setXlh(xlh+i);
wygame.setSqDate(new Date());
wygameList.add(wygame);
}
wygameservice.createBatch(wygameList);
}
执行这个方法会报:
org.springframework.dao.DataIntegrityViolationException: Hibernate operation: Could not execute JDBC batch update; SQL [insert into mychat.wygame (gameName, xlhType, xlh, sqDate, isUsed, id) values (?, ?, ?, ?, ?, ?)]; Data truncation: Data truncated for column 'sqDate' at row 1; nested exception is java.sql.BatchUpdateException: Data truncation: Data truncated for column 'sqDate' at row 1 这个错误
能成功插入第一条记录,只是之后9条记录没有插入数据库,数据库sqDate字段的类型为date;
求高手解惑,如何解决这个问题。
...全文
6437 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hawk_c_s_d_n 2012-09-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

“Data truncated for column 'sqDate' at row 1” 指数据被截断了啊,对象中设置的时间格式是带时分秒的啊,数据库data类型数据不会带时分秒啊。 这个也去数据库有关的,像mysql就不会提示错误。
[/Quote]

我的数据库就是mysql的。。。。。。。
hawk_c_s_d_n 2012-09-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

日期类型插入的时候要这样

2012-09-12 14:29:04

你得格式化一下

具体什么格式 就看你的要求了、

yyyy-MM-dd HH:mm:ss

用 SimpleDateFormat这个
[/Quote]

但是第一条记录是能插入成功的,如果按你这种说法的话,应该一条都不能插入成功的吧。
yj_2006hn 2012-09-12
  • 打赏
  • 举报
回复
“Data truncated for column 'sqDate' at row 1” 指数据被截断了啊,对象中设置的时间格式是带时分秒的啊,数据库data类型数据不会带时分秒啊。 这个也去数据库有关的,像mysql就不会提示错误。
  • 打赏
  • 举报
回复
日期类型插入的时候要这样

2012-09-12 14:29:04

你得格式化一下

具体什么格式 就看你的要求了、

yyyy-MM-dd HH:mm:ss

用 SimpleDateFormat这个
hawk_c_s_d_n 2012-09-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

先只插入一条试试,如果还抱着个错的话,应该可以断定数据长度有问题,看看数据库这个字段的类型和长度是什么,再看看程序中这个字段值长度多少,调试一下,应该很简单
[/Quote]
插入一条记录也报这个错误,但是数据插入到数据库了。
hawk_c_s_d_n 2012-09-12
  • 打赏
  • 举报
回复
createBatch方法为
public boolean createBatch(List<WyGame> wygameList) {
boolean flag = false;
HibernateTemplate hibernateTemplate = this.getHibernateTemplate();
try{
for(int i=0,length =wygameList.size();i<length;i++){
hibernateTemplate.save(wygameList.get(i));
}
flag = true;
}catch(Exception e){
e.printStackTrace();
}
return flag;
}

sqDate实体类中定义的是java.util.Date;数据库定义的为Date
阿甘1976 2012-09-12
  • 打赏
  • 举报
回复
sqDate字段写入数据出错了,sqDate是定义为什么类型的数据啊。
菖蒲老先生 2012-09-12
  • 打赏
  • 举报
回复
关键得看createBatch里的写法。。。
wanpeizhi 2012-09-12
  • 打赏
  • 举报
回复
先只插入一条试试,如果还抱着个错的话,应该可以断定数据长度有问题,看看数据库这个字段的类型和长度是什么,再看看程序中这个字段值长度多少,调试一下,应该很简单

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧