When using MySQL + ibatis for insertion test, an error is reported: the information is as follows:
com.ibatis.common.jdbc.exception.NestedSQLException: --- The error occurred in com/study/ibatis/Student.xml. --- The error occurred while applying a parameter map. --- Check the addStudent-InlineParameterMap. --- Check the statement (update failed). --- Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '1' for key 'PRIMARY' at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeUpdate(MappedStatement.java:107) at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.insert(SqlMapExecutorDelegate.java:393) at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:82) at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.insert(SqlMapClientImpl.java:58) at com.study.ibatis.StudentDaoImpl.addStudent(StudentDaoImpl.java:33) at com.study.ibatis.TestIbatis.main(TestIbatis.java:14) Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry '1' for key 'PRIMARY' at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.Util.getInstance(Util.java:381) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1015) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734) at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:995) at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:80) at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteUpdate(MappedStatement.java:216) at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeUpdate(MappedStatement.java:94) ... 5 more false
The meaning of the error is: repeatedly enter the “1” key as “main” to enter the database and query the table TBL_When I was a student, I found three records, one of which has a primary key of 1. Considering that when I test, the default primary key in the database is 1. Therefore, delete the record with primary key 1 in the database. Then the test passed
Summary: I set the primary key in ibatis to the default 1. As a result, the test starts directly from the default 1. Then the problem is solved by reporting an error and setting the default value of the primary key to null
Similar Posts:
- Java.math.BigInteger cannot be cast to java.lang.Long [How to Solve]
- mysql connection reports java.math.BigInteger cannot be cast to java.lang.Long exception
- java.sql.SQLException: Got error 28 from storage
- [Solved] Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
- Project startup error: communications link failure
- SSM Project Error: java.sql.SQLException: Access denied for user ‘????…§’@’localhost’ (…
- [java & MySql] Path does not chain with any of the trust anchors
- activiti MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row
- [Solved] The server time zone value ‘Öйú±ê׼ʱ¼ä’ is unrecognized or represents more than one time zone
- [Solved] org.hibernate.exception.SQLGrammarException: could not execute statement at…