您误解了的返回值
PreparedStatement#execute()。
请仔细阅读javadoc:
返回值:
true如果第一个结果是ResultSet对象;false如果第一个结果是更新计数或没有结果。
因此,它的回报-因为完全在意料之中-
false上
INSERT查询。它仅
true在
SELECT查询时返回(但是您通常希望使用该查询,
executeQuery()而不是直接返回
ResultSet)。
如果您对受影响的行感兴趣,请
PreparedStatement#executeUpdate()改用。它返回一个
int按的Javadoc:
返回值:
(1)SQL数据操作语言(DML)语句的行计数,或者(2)SQL语句不返回任何内容的行数
返回值等于或大于1则表示插入成功。



