日期:2014-05-20  浏览次数:20654 次

java 中jdbc有关boolean的默认值问题
ps = ct.prepareStatement("drop database xiaofei2");
//如果执行ddl语句则使用execute
boolean b ;
b = ps.execute();
System.out.println(b);
if(b == true){
System.out.println("创建成功");
}else{
System.out.println("创建失败");
}
为什么不管是否创建成功结果都是“创建失败”?

------解决方案--------------------
该方法并非返回true执行成功,返回false执行失败..
更确切的说返回true执行的是查询操作,返回false执行的是DDL操作..

API:如果第一个结果是 ResultSet 对象,则返回 true;如果第一个结果是更新计数或者没有结果,则返回 false
------解决方案--------------------
ps.getUpdateCount();
------解决方案--------------------
try{
executeUpdate();
}catch(SQLException e){
......
}

执行DDL语句,成功的话会返回0(如果执行DML语句,会返回影响的行数);
不成功的话,会抛一个SQLException异常的。