`
guy19867
  • 浏览: 89510 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC

阅读更多

org.springframework.dao.DataIntegrityViolationException: Could not execute JDBC batch update; nested exception is org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update

这个异常的产生可能是原因是进行批数据处理时造成的,包括保存和更新。要进行处理的数据间存在了外键约束(外键约束在文章末尾有个小例子),即只有关联的数据存在时或确定时可进行操作,否则会报这个异常。

外键约束(来自百度知道):

如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表。外键是用来实现参照完整性的。

比如说:

create table t_group (   
    id int not null,   
    name varchar(30),   
    primary key (id)   
);  

insert into t_group values (1, 'Group1');   
insert into t_group values (2, 'Group2');

create table t_user (   
    id int not null,   
    name varchar(30),   
    groupid int,   
    primary key (id),   
    foreign key (groupid) references t_group(id) on delete cascade on update cascade  
);  

insert into t_user values (1, 'qianxin', 1); --可以插入   
insert into t_user values (2, 'yiyu', 2);    --可以插入   
insert into t_user values (3, 'dai', 3);    --错误,无法插入,用户组3不存在,与参照完整性约束不符 

insert into t_user values (1, 'qianxin', 1);   
insert into t_user values (2, 'yiyu', 2);   
insert into t_user values (3, 'dai', 2);   
delete from t_group where id=2;              --导致t_user中的2、3记录级联删除   
update t_group set id=2 where id=1;          --导致t_user中的1记录的groupid级联修改为2 

 

分享到:
评论

相关推荐

    javaee三大框架整合宅急送项目lib包

    org.springframework.dao.DataIntegrityViolationException: could not delete: [org.jbpm.pvm.internal.model.ExecutionImpl#50001]; SQL [delete from JBPM4_EXECUTION where DBID_=? and DBVERSION_=?]; ...

    dm-jdbc.rar

    JDBC驱动抛出的异常通常是SQLException及其子类,如BatchUpdateException、DataIntegrityViolationException等。捕获这些异常可以帮助开发者定位并解决数据库操作中的问题。 7. **性能优化**: 使用...

    spring 中的jdbc

    Spring JDBC将数据库异常转换为统一的`DataAccessException`层次结构,如`SqlException`, `InvalidDataAccessResourceUsageException`, `DataIntegrityViolationException`等,这样可以简化异常处理逻辑。...

    SPRING API 2.0.CHM

    DataIntegrityViolationException DataRetrievalFailureException DataSourceLookup DataSourceLookupFailureException DataSourceTransactionManager DataSourceUtils DB2SequenceMaxValueIncrementer ...

    Java语言SQL接口 JDBC编程技术

    12. **异常处理**:在JDBC编程中,常见的异常有SQLException及其子类,如CommunicationsException、DataIntegrityViolationException等,需要妥善捕获和处理。 13. **连接池**:为了优化性能和资源管理,开发者通常...

    一步一步学grails(9)

    } catch(org.springframework.dao.DataIntegrityViolationException e) { flash.message = "Crafts ${params.id} could not be deleted" redirect(action:show,id:params.id) } } else { flash.message = ...

    Spring的DataAccessException

    该异常层次结构是 Spring 框架中 DAO(Data Access Object)模块的一部分,其目的是为了提供一个统一的错误处理机制,使得开发者可以更方便地处理数据访问层中的错误。 DataAccessException 是一个 ...

    JDBC(ORACLE)

    在JDBC编程中,常见的异常包括`SQLException`及其子类,如`CommunicationsException`、`DataIntegrityViolationException`等。遇到异常时,应该捕获并适当地处理,确保程序的健壮性。 ### 性能优化 1. **批处理**...

    非常有用的jdbc的操作数据库

    **JDBC(Java Database Connectivity)**是Java编程语言中用于规范客户端程序如何访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。在Java世界里,JDBC是连接各种数据库的标准,无论你是使用...

    Spring系列面试题129道(附答案解析)

    Spring的JDBC抽象和DAO模块为数据访问提供了便利,它们简化了数据库访问的代码,并隐藏了不同数据库之间的差异。此外,该模块也提供了异常转换机制,将数据库相关的异常转换为统一的DataAccessException异常。 68、...

    springdatajpa.zip

    Spring Data JPA是Spring框架的一个模块,用于简化Java Persistence API(JPA)的使用,它提供了与各种数据存储系统交互的高级抽象。本项目是一个基于IntelliJ IDEA的实例,展示了如何在Spring应用中整合Spring Data...

    java直连包

    常见的数据库相关异常包括`SQLException`及其子类,如`CommunicationsException`、`DataIntegrityViolationException`等。 10. **连接池**: 在实际应用中,为了提高性能和减少资源消耗,通常会使用连接池(如C3P0、...

    Java-JDBC:Estudo Sobre JDBC

    - **SQL异常**:JDBC抛出的异常通常是SQLException及其子类,如BatchUpdateException、DataIntegrityViolationException等。 - **捕获和处理**:正确处理异常,确保程序健壮性。 9. **JDBC与ORM框架的比较** - *...

    JDBC学习手册,开发手册两套(初学者必备)

    **JDBC学习手册** JDBC(Java Database Connectivity)是Java编程语言中用于访问数据库的标准Java API,它允许Java开发者在程序中执行SQL语句,从而实现对数据库的增删改查操作。本JDBC学习手册涵盖了JDBC的核心...

    很好的jabc学习笔记

    在进行JDBC编程时,可能会遇到SQLException及其子类异常,例如CommunicationsException(网络通信异常)、DataIntegrityViolationException(数据完整性违反异常)等。因此,我们需要捕获并适当地处理这些异常,以...

    JDBC

    JDBC操作过程中可能会抛出`SQLException`及其子类异常,如`BatchUpdateException`、`DataIntegrityViolationException`等。开发时需妥善处理这些异常。 ### 8. 其他高级特性 - **JDBC-ODBC桥**:早期Java与非Java...

    java Spring Boot 1.5.22 JPA数据库 JDK1.6

    8. **数据访问对象(DAO)**:虽然Spring Data JPA提供了便利的查询方法,但在复杂查询或特殊需求时,可能需要自定义DAO层进行扩展。 9. **错误处理**:理解并处理可能出现的JPA异常,如`...

    ibatis基本架包

    1. **异常处理**:包含了Ibatis特有的异常类,如SqlMapException,DataIntegrityViolationException等,这些异常帮助开发者在遇到数据库操作问题时能快速定位错误。 2. **日志模块**:Ibatis支持多种日志实现,如...

    04. SpringBoot整合持久层技术

    在持久层操作中,我们常常需要处理数据异常,例如JPA的OptimisticLockingFailureException(乐观锁失败)和MyBatis的DataIntegrityViolationException(数据完整性约束违反)。同时,使用`@Validated`或`javax....

    JDBC-EXAMPLE

    在JDBC编程中,常见的异常有`SQLException`及其子类,如`CommunicationsException`、`DataIntegrityViolationException`等。应该妥善处理这些异常,确保程序的健壮性。 **批处理** 批处理可以一次发送多个SQL语句...

Global site tag (gtag.js) - Google Analytics