Exception in thread "main" org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [update account set
money = money - ? where username = ?]; Data truncation: Truncated incorrect DOUBLE value: 'xxx'; nested exception is com.mysql
.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value: 'xxx'
at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:102)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:73)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:82)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:655)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:876)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:937)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:947)
at org.cwj.Dao.Imp.AccountDaoImp.out(AccountDaoImp.java:29)
at org.cwj.Service.Imp.AccountServiceImp.trand(AccountServiceImp.java:33)
at org.cwj.Text.Text.main(Text.java:29)
Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Truncated incorrect DOUBLE value: 'xxx'
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4230)
3 回答

12345678_0001
TA貢獻1802條經驗 獲得超5個贊
Exception in thread "main" org.springframework.dao.DataIntegrityViolationException: PreparedStatementCallback; SQL [update account set money = money - ? where username = ?]
看下這個SQL 的參數 money 傳入的值的長度跟數據庫類型的長度肯定不一致導致了入庫截斷異常了。

紫衣仙女
TA貢獻1839條經驗 獲得超15個贊
update account set money = money - ? where username = ?
應該是這一句傳入的數據長度不對,有可能是你傳入的數據類型是double,但是數據庫設定的numeric長度不夠,可以設置斷點或者打印出來看一下
添加回答
舉報
0/150
提交
取消