数据库中的存储过程如下:
create procedure ishava
@accountNew varchar(10)
as
begin
if(@accountNew in (select accountid from userCount))
begin
print'该账户存在'
end
else
begin
print'不存在该账户'
end
end--执行存储过程
exec ishava '111' 在数据库中打印出:该账户存在......用java语言调用该存储过程如下:
public boolean ishave(String account) throws SQLException{
Connection connection = new Database().getConn();
CallableStatement cllStmt;
cllStmt = connection.prepareCall("{call ishava(?)}");
cllStmt.setString(1, account);
boolean flag=cllStmt.execute();
System.out.println(account);
if(flag){
return true;
}else{
return false;
}
}
public static void main(String a[]){
UserDaoNew udn=new UserDaoNew();
try {
System.out.println(udn.ishave("111"));
} catch (SQLException e) {
e.printStackTrace();
}
}
控制台输出内容如下:
false不明白:
控制台应该输出true才对,为什么是输出false呢?
create procedure ishava
@accountNew varchar(10)
as
begin
if(@accountNew in (select accountid from userCount))
begin
print'该账户存在'
end
else
begin
print'不存在该账户'
end
end--执行存储过程
exec ishava '111' 在数据库中打印出:该账户存在......用java语言调用该存储过程如下:
public boolean ishave(String account) throws SQLException{
Connection connection = new Database().getConn();
CallableStatement cllStmt;
cllStmt = connection.prepareCall("{call ishava(?)}");
cllStmt.setString(1, account);
boolean flag=cllStmt.execute();
System.out.println(account);
if(flag){
return true;
}else{
return false;
}
}
public static void main(String a[]){
UserDaoNew udn=new UserDaoNew();
try {
System.out.println(udn.ishave("111"));
} catch (SQLException e) {
e.printStackTrace();
}
}
控制台输出内容如下:
false不明白:
控制台应该输出true才对,为什么是输出false呢?
(
@accountNew varchar(10)
)
as
begin if(@accountNew=(select accountid from userCount))
begin
print'该账户存在'
end
else
begin
print'不存在该账户'
end
end
在再程序debug
如果第一个结果是 ResultSet 对象,则返回 true;如果第一个结果是更新计数或者没有结果,则返回 false
boolean execute()
throws SQLException在此 PreparedStatement 对象中执行 SQL 语句,该语句可以是任何种类的 SQL 语句。一些预处理过的语句返回多个结果,execute 方法处理这些复杂的语句,executeQuery 和 executeUpdate 处理形式更简单的语句。
execute 方法返回一个 boolean 值,指示第一个结果的形式。必须调用 getResultSet 或 getUpdateCount 方法获取该结果,必须调用 getMoreResults 获取任何后续结果。
返回:
如果第一个结果是 ResultSet 对象,则返回 true;如果第一个结果是更新计数或者没有结果,则返回 false
抛出:
SQLException - 如果发生数据库访问错误;在关闭的 PreparedStatement 上调用此方法,或者为此方法提供了参数
另请参见:
Statement.execute(java.lang.String), Statement.getResultSet(), Statement.getUpdateCount(), Statement.getMoreResults()