preparedStatement

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35938548/article/details/79957004

问题1
在用JDBC的PreparedStatement类时,使用insert插入数据到数据表中,sql语句在执行preparedStatement.executeUpdate()方法后,成功返回了操作行数,表明程序没有问题,但就是在数据库中看不到插入的数据。

这个问题的原因在于,设置了 connection.setAutoCommit(false),使得preparedStatement的操作不会自动提交到数据库,所以最好是在executeUpdate()后加上这条语句

//手动提交
connection.commmit();

问题2
使用preparedStatement.setInt()等方法给占位符赋值时,如果不对取值进行非空判断,经常会报空值异常。
解决方式,进行空值判断,如果是空的,使用setNull()方法

import java.sql.*;

preparedStatement.setNull(1,Types.Integer)

问题3
调用excute()方法执行对数据库操作的DDL语句,返回的是false。
原因是excute()方法相当于是excuteQuery()和excuteUpdate()之和。返回的结果是ResultSet时,excute()返回true;返回的结果是受影响的行数时,excute()返回false

阅读更多 登录后自动展开
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页