`

hibernate的Could not execute JDBC batch update错误原因及处理

阅读更多
hibernate的Could not execute JDBC batch update错误原因及处理

         今天用hibernate做系统的时候,出现了Could not execute JDBC batch update错误,现在已经解决。

先说说我的代码:

         这是角色表对应的配置文件,当我在角色管理列表的jsp页面里删除选中的角色信息,就报了上面的错误。
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- 
    Mapping file autogenerated by MyEclipse - Hibernate Tools
-->
<hibernate-mapping>
    <class name="com.cms.po.Trole" table="trole">
        <id name="roleId" type="integer">
            <column name="roleId" />
            <generator class="native" />
        </id>
        <property name="roleName" type="string">
            <column name="roleName" length="50" />
        </property>
        <property name="isDel" type="string">
            <column name="isDel" length="2" />
        </property>
        <property name="roleDescribe" type="string">
            <column name="roleDescribe" length="500" />
        </property>
        <property name="createTime" type="string">
            <column name="createTime" length="32" />
        </property>
        
        <!-- 创建的用户id 一对一 --> 
        <many-to-one
              name="tsysuser"
              column="userId"
              unique="true"
              class="com.cms.po.Tsysuser" lazy="false"/> 
        
    </class>
</hibernate-mapping>

        每创建角色,都对应着创建人的id,但是我为了测试省事,直接把数据插进表里,并且没有在表里插入创建人的userId,再看看代码:

     
/**
     * 批量删除角色
     */
    public boolean deleteRoles(String roleids) throws Exception {        
        String[] roleidArray = roleids.split(",");
        for(int i=0; i<roleidArray.length; i++){
            Trole trole = (Trole)this.getHibernateTemplate().get(Trole.class,new Integer(roleidArray[i]));
            trole.setIsDel("1");
            this.getHibernateTemplate().saveOrUpdate(trole);
        }
        return true;        
    }
没有什么问题,但是却报了Could not execute JDBC batch update的错,主要是配置文件设置了关联,数据却没有关联造成的,只要数据正确就没有问题。

另外,造成这个原因的还可能是数据库的驱动jar包不支持。

还有就是csdn的dizhang的专栏提到的下面问题引起的:

1.因为Hibernate Tools(或者Eclipse本身的Database Explorer)生成*.hbn.xml工具中包含有catalog="***"(*表示数据库名称)这样的属性,将该属性删除就可以了
2.估计是你的列名里面有关键字的原因吧,命名列的时候不要单独使用date,ID...这种关键字

Hibernate查询时候的问题。
莫名其妙地报如下的错误,
org.hibernate.exception.GenericJDBCException: could not execute query

Could not execute JDBC batch update错误有可能是中文问题引起的,如果使用的JBoos4.2GA,别忘了解决中文问题:
1. 设置JBoss的连接编码:URIEcoding="utf-8"
2. 使用filter解决struts中文问题,网上很多这方面的资料

转自:http://blog.csdn.net/derpvailzhangfan/article/details/2332795
分享到:
评论

相关推荐

    could not execute

    could not execute:bad executable format(win32 error 193) 下了一个实现MD5的代码,编译时没有错误,但是执行的时候却提示:could not execute:bad executable format(win32 error 193)

    Hibernate错误及解决办法集合

    ### Hibernate常见错误及解决办法 #### 一、Nodefaultconstructorforentity 错误 **问题描述**:在使用Hibernate执行查询语句时,系统抛出`Nodefaultconstructorforentity`错误。 **可能原因**:该错误通常是由于...

    MyEclipse注册机

    Exception in thread "main" org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update 或者org.springframework.jdbc.BadSqlGrammarException: Hibernate operation: could not insert: ...

    Hibernate映射导致的几个异常

    SQLGrammerException, Could not execute JDBC batch update 当执行批量更新操作时,如果SQL语法错误或数据库不支持批处理,可能会遇到此异常。检查SQL语句的语法正确性,以及数据库驱动是否支持所需的批处理功能...

    hibernate 排错 宝典1

    ### 错误四:`org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update` **错误现象**: 在执行数据库批量操作时,Hibernate抛出`SQLGrammarException`,表明SQL语法错误或数据库不支持...

    JDBC中PreparedStatement接口提供的execute、executeQuery和executeUpdate之间的区别及用法

    JDBC 中 PreparedStatement 接口提供的 execute、executeQuery 和 executeUpdate 之间的区别及用法 JDBC 中的 PreparedStatement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。...

    制作调试过程及数据记录1

    另一个常见的问题是在级联操作时,如级联删除,可能会遇到`Hibernate: Could not execute JDBC batch update`的错误。这通常是由于Hibernate在执行数据库更新操作时出现了问题。为了解决这个问题,我们需要在实体类...

    windump3.9.3+winpcap

    Windump和WinPcap是网络数据包捕获和分析的两个关键工具,广泛用于网络监控、故障排查和安全分析。这两个工具在IT行业中扮演着...在处理网络故障、进行安全审计或监控网络行为时,Windump和WinPcap都是不可或缺的工具。

    SAP PI JDBC 可使用语句的示例

    SAP PI 的 JDBC 适配器允许系统通过 JDBC 连接到各种数据库,执行 SQL 操作并处理结果。这些操作可以包括插入(INSERT)、更新(UPDATE)、删除(DELETE)以及查询(SELECT)。为了确保数据的一致性和准确性,需要对传入的...

    MyEclipse报错说明

    3. **Exception in thread "main" org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update** Hibernate在执行数据库批处理更新时出现SQL语法错误,可能是由于数据库表不存在或结构不符...

    遇到的问题1

    8. **JDBC批量更新失败**: "Could not execute JDBC batch update"可能是因为试图删除与外键关联的数据,检查数据库约束并处理好关联关系。 9. **懒加载问题**: "Stream close"提示没有启用懒加载,需要在Hibernate...

    maven出现:Failed to execute goal on project …: Could not resolve dependencies for project …

    在使用Maven构建Java项目时,可能会遇到这样一个错误:“Failed to execute goal on project …: Could not resolve dependencies for project …”。这个错误通常表明Maven在构建过程中遇到了依赖解析问题,无法...

    EXECUTE

    在IT行业中,"EXECUTE"通常与编程和脚本执行紧密相关。这可能是指在某个程序、脚本或操作系统命令中触发执行的动作。当我们谈论"EXECUTE"时,我们主要关注的是代码的运行过程,这涉及到计算机语言的理解、编译(如果...

    精心整理的ssh2 一些错误问题的记录(推荐)

    ### 错误三:Could not execute JDBC batch update; nested exception is org.hibernate.exception.ConstraintViolationException 此错误表示在执行批量更新操作时违反了数据库约束,可能是外键约束、唯一性约束等...

    SpringJDBC.rar_SpringJDBC_spring jdbc

    - 对于批量插入或更新,Spring JDBC提供了`batchUpdate()`方法,可以有效地提高性能。 5. **异常处理**: - Spring JDBC将JDBC的异常转换为Spring的`DataAccessException`家族,使得异常处理更加统一和简单。 6....

    Spring JDBC相关jar包:spring_jdbc_4.0.0.zip

    4. **批量操作**:对于需要多次执行相同SQL的情况,`JdbcTemplate`的`batchUpdate`方法可以有效地进行批量处理,提高性能。 5. **事务管理**:Spring JDBC模块与Spring的事务管理相集成,可以方便地进行编程式或...

    SVN在客户端执行UPDATE报locked的处理办法

    ### SVN在客户端执行UPDATE报locked的处理办法 #### 背景介绍 在软件开发过程中,版本控制系统(Version Control System, VCS)是必不可少的工具之一。Subversion(SVN)作为一款开源的集中式版本控制系统,被广泛...

    JDBCJDBC高级应用

    4. **批处理更新(Batch Update)**: - 批处理可以提高数据库操作的性能,避免频繁的网络通信。通过 `Statement` 对象的 `addBatch(String sql)` 方法添加SQL语句到批处理队列,然后通过 `executeBatch()` 执行...

    关键字user附近有语法错误解决方案

    警告: SQL Error: 156, ...org.hibernate.exception.SQLGrammarException: could not execute query org.hibernate.util.JDBCExceptionReporter logExceptions 严重: 关键字 'user' 附近有语法错误。 的解决方案。

Global site tag (gtag.js) - Google Analytics