奇怪的问题,折腾了我一上午,分析一下。
ibatis下执行insert、update、delete操作,单元测试通过,发布到tomcat下执行update、delete成功,而insert时却报错,出错信息如下,分析分析。
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: SqlMapClient operation; SQL [];
--- The error occurred in com/nmgnews/fip/dao/ibatis/maps/FipInfoSort.xml.
--- The error occurred while applying a parameter map.
--- Check the insertInfoSort-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: java.sql.SQLException: Duplicate entry '06' for key 1; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in com/nmgnews/fip/dao/ibatis/maps/FipInfoSort.xml.
--- The error occurred while applying a parameter map.
--- Check the insertInfoSort-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: java.sql.SQLException: Duplicate entry '06' for key 1
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:487)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:440)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
root cause
org.springframework.dao.DataIntegrityViolationException: SqlMapClient operation; SQL [];
--- The error occurred in com/nmgnews/fip/dao/ibatis/maps/FipInfoSort.xml.
--- The error occurred while applying a parameter map.
--- Check the insertInfoSort-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: java.sql.SQLException: Duplicate entry '06' for key 1; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in com/nmgnews/fip/dao/ibatis/maps/FipInfoSort.xml.
--- The error occurred while applying a parameter map.
--- Check the insertInfoSort-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: java.sql.SQLException: Duplicate entry '06' for key 1
org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.translate(SQLErrorCodeSQLExceptionTranslator.java:246)
org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:196)
org.springframework.orm.ibatis.SqlMapClientTemplate.insert(SqlMapClientTemplate.java:367)
com.nmgnews.fip.dao.ibatis.SqlMapFipInfoSortDao.insertInfoSort(SqlMapFipInfoSortDao.java:30)
com.nmgnews.fip.web.spring.EditInfoSortController.handleRequest(EditInfoSortController.java:48)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:857)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:475)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:440)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
root cause
com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in com/nmgnews/fip/dao/ibatis/maps/FipInfoSort.xml.
--- The error occurred while applying a parameter map.
--- Check the insertInfoSort-InlineParameterMap.
--- Check the statement (update failed).
--- Cause: java.sql.SQLException: Duplicate entry '06' for key 1
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:91)
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:447)
com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:82)
org.springframework.orm.ibatis.SqlMapClientTemplate$9.doInSqlMapClient(SqlMapClientTemplate.java:369)
org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:193)
org.springframework.orm.ibatis.SqlMapClientTemplate.insert(SqlMapClientTemplate.java:367)
com.nmgnews.fip.dao.ibatis.SqlMapFipInfoSortDao.insertInfoSort(SqlMapFipInfoSortDao.java:30)
com.nmgnews.fip.web.spring.EditInfoSortController.handleRequest(EditInfoSortController.java:48)
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:857)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:475)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:440)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
分享到:
相关推荐
标题 "ibatis UPDATE 动态XML与insert" 涉及到的是MyBatis框架中对数据库数据进行更新(UPDATE)和插入(INSERT)操作的动态XML配置方式。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,...
通过上述步骤,我们可以在ibatis中实现高效的批量更新操作,极大地提升系统处理大规模数据的能力。这种方法不仅适用于Java环境下的开发,也适用于其他支持ibatis的编程语言。总之,ibatis提供的批量更新功能是处理...
ibatis的insert方法的返回值。 介绍了mybaits如何处理返回值的问题。
在本篇“Spring3学习笔记(2)-集成ibatis3进行单元测试”中,我们将深入探讨如何在Spring3框架中整合Ibatis3,并利用它来进行单元测试。这个主题对于理解如何在实际项目中实现数据访问层的测试具有重要意义。在现代...
3. 执行SQL:调用SqlSession的selectList、selectOne、insert、update或delete方法,传入Mapper接口方法的名称和参数。 4. 处理结果:如果是查询操作,返回的结果会被自动映射为Java对象;如果是增删改操作,返回受...
添加和更新操作与删除类似,通过insert和update元素定义SQL语句,然后调用SqlMapper的Insert或Update方法。例如: ```xml <insert id="InsertUser" parameterClass="User"> INSERT INTO Users (Name, Email) ...
4. **参数映射**:使用`@Param`注解传递参数,以及使用`<select>`, `<insert>`, `<update>`, `<delete>`标签进行SQL操作。 5. **结果映射**:配置`<resultMap>`来映射查询结果到Java对象,包括自动类型转换和一对一...
`IBATISDAO`库类通常会提供一系列通用的方法,如`selectOne()`, `selectAll()`, `insert()`, `update()`, `delete()`等,这些方法对应于SQL的查询、插入、更新和删除操作。通过泛型机制,`IBATISDAO`可以适应不同的...
通过Ibatis3xml文件配置+Mysql实现数据批量插入,原先在网上找很多,都是关于批量更新,批量插入的很少,而且其写法又完全不同,所以自己研究了一下。可供参考。另外插入时如出现内容报错,请参照my.cnf修改书库配置...
在IT行业中,持久层框架是数据库操作的重要工具,它简化了数据访问的复杂性,使得开发者可以更加专注于业务逻辑的实现。...通过`ibatisJavaTest`这样的测试文件,我们可以更好地理解和实践Ibatis的各种操作。
标题 "ibatis_test测试" 涉及到的是对Ibatis这一知名Java持久层框架的实战测试。Ibatis,作为一个轻量级的ORM(Object-Relational Mapping)框架,允许开发者将SQL语句直接写在配置文件中,使得数据库操作与业务逻辑...
在Action或Service中,可以通过SqlMapClient调用SQL语句,执行增删查改操作。 MYSSI可能是项目的主要源代码目录,包含以下组件: 1. **src**: 存放Java源代码,包括Action类、Service接口及实现、DAO接口及实现等。...
在Java代码中,我们可以通过SqlSession的`selectOne`、`insert`、`update`和`delete`方法调用对应的Mapper接口方法,执行数据库操作。例如: ```java try (SqlSession session = sqlSessionFactory.openSession()) ...
本篇文章将通过一个具体的CRUD操作项目实例,帮助读者深入理解iBatis的工作原理和使用方法。 首先,我们需要了解iBatis的核心概念。iBatis的核心是SQL映射文件,它将SQL语句与Java代码分离,使得数据库操作更加清晰...
3. 使用`SqlSessionFactory`创建会话工厂,通过`SqlSession`执行SQL操作。 ```java String resource = "SqlMapConfig.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); ...
1. **基本CRUD操作**:`IBatisDao`通常会包含增删改查(Create、Read、Update、Delete)的基本接口,如`insert()`, `select()`, `update()`, `delete()`。这些方法的实现会对应到具体的SQL映射文件,通过`SqlSession...
在IT行业中,Ibatis是一个非常流行的Java持久层框架,它为开发者提供了灵活的数据库操作方式,使得SQL与Java代码能够紧密结合。本篇文章将主要探讨如何使用Ibatis对单个对象进行各种操作,包括插入、更新、删除和...
总的来说,Java iBatis main测试就是通过Java程序的主函数来验证iBatis框架的配置、SQL查询和数据操作的正确性。这种方式对于开发和调试数据库相关的功能非常有用,确保了代码在实际运行前的正确性。
在Ibatis中,CRUD(Create, Read, Update, Delete)是数据库中最基本的操作,下面我们将详细介绍如何使用Ibatis实现这些操作。 1. **创建(Create)**:创建通常涉及到插入新的记录。在Ibatis中,我们定义一个Insert...