Hibernate3.2是否和MYSQL5.1不兼容?要多少分给多少分,如果解决了问题

tsrt 2007-10-13 10:24:17
Database: MYSQL5.1

Statement.addBatch()
int[] return =statement.executeBatch()

我写了个测试程序测试上面的语句
如果操作成功 返回的数值return是 7810893

但在hibernate3.2中,返回值必须是 -2才是成功
我跟踪了源代码
7810893 is error

因此save()总是报告

java] 07:05:35,703 ERROR AbstractBatcher:51 - Exception executing batch:
[java] org.hibernate.jdbc.BatchedTooManyRowsAffectedException: Batch update
returned unexpected row count from update [0]; actual row count: 7810893; expec
ted: 1
...全文
220 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
maradona_luo 2009-02-13
  • 打赏
  • 举报
回复
对阿,我现在是mysql5.1,需要采用什么用的版本呢
sixday 2008-04-25
  • 打赏
  • 举报
回复
我这几天也遇到这个问题,因为我用的数据库是MySql 版本是Ver 14.13 Distrib 5.1.20-beta, for Win32 (ia32),当时的驱动是5.0.5 当换了数据库更换到5.0时,没有问题。感觉的确是驱动的问题。但是我把驱动换到5.1.6(数据库版本5.1)时仍然出现会楼主遇到的问题。
要是驱动的问题,那5.1应该使用哪个版本的驱动呢?
tsrt 2007-10-15
  • 打赏
  • 举报
回复
有点同意楼上的
不知道谁能测试下?
我这里不方便测试
给测试的人200分
tsrt 2007-10-14
  • 打赏
  • 举报
回复
我只调用了一个SAVE()
下面有个例子 你们看1下 ,它就插入了1行,结果返回7810893而不是 J2EE说的-2(唯一正确值),并且返回7810893的同时,可以插入到数据库中



package jdb;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class TestBatch {


public static Connection getConnection() throws SQLException,IOException, ClassNotFoundException {
Class.forName("com.mysql.jdbc.Driver");
Properties props = new Properties();
InputStream in = new BufferedInputStream(new FileInputStream("config.property"));
props.load(in);
in.close();

return DriverManager.getConnection(props.getProperty("url"),
props.getProperty("user"),
props.getProperty("password"));


}

public static Statement getState(Connection con) throws SQLException, IOException, ClassNotFoundException{
return con.createStatement();

}

public static Statement addBatch(Statement state, String[] sql) throws SQLException, IOException, ClassNotFoundException {

if (sql.length <1){
System.out.println("no sql batch");

}
else{
//System.out.println(sql.length);
for (int i=0;i<sql.length;i++){
state.addBatch(sql[i]);

}
return state;
}
return null;

}

public static void close(Connection state) throws SQLException {
state.close();
}
public static void main(String[] args) {
String[] sql = {"insert into events values(3,'2007-01-06','qiuting')"};
try{
Connection con = TestBatch.getConnection();
Statement stat = TestBatch.getState(con);
TestBatch.addBatch(stat, sql);
int[] res = stat.executeBatch();
TestBatch.close(con);
for (int i=0; i<res.length; i++){
System.out.println("return values "+res[i]);
}

System.out.println("ok");
}catch(Exception e){
System.err.println(e);

}
finally{

}

}


}

paradise7th 2007-10-14
  • 打赏
  • 举报
回复
跟hibernate完全无关,似乎是mysql驱动和数据库版本对不上的原因,你换成mysql5.0应该就没问题了
  • 打赏
  • 举报
回复
确定,一定,以及肯定兼容!
不过你的异常说影响的行数太多了,你再仔细检查下看看!··
gongyali2005 2007-10-13
  • 打赏
  • 举报
回复
把MYSQL换成5.0的,
我要一百分.
iskyshop 2007-10-13
  • 打赏
  • 举报
回复
绝对兼容
xiyuan1999 2007-10-13
  • 打赏
  • 举报
回复
Hibernate3.2是否和MYSQL5.1不兼容

兼容
Sherlock_Holmes 2007-10-13
  • 打赏
  • 举报
回复
兼容的...
yztommyhc 2007-10-13
  • 打赏
  • 举报
回复
对的啊,7810893这个行数太大了,你处理1000行试看看呢。

67,512

社区成员

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

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