try{
stmt = conn.prepareStatement(sql);
//这里是一个sql语句的字符串,如select * from 表 where 字段一 =?;
?表的是占位符,
从下面的stmt.setString(1,nickname); 可以看出有一个占位符
stmt.setString(1,nickname); //给这个占位符赋值
rs = stmt.executeQuery(); //执行sql语句
if(rs.next()){ //如果查出有数据
%>
<%
}else{
haveuser = 1;
//out.print("用户名不存在");
}
}catch(SQLException e){
}finally{
try{
//如果一些相关连接没关闭,则强制关闭
if(rs !=null)
rs.close();
if(stmt !=null)
stmt.close();
}catch(SQLException e1){
}
}
try{} 正长的话 执行 这里面的
catch(){} 不正常 就是遇到异常 执行这里面的 好比 数据库关闭了查
不到数据
finally{} 这里面的 不管正常执行 还是遇到异常 都要执行
执行第一个“try{”到“}catch(...”之间的代码,遇到错误不处理(catch语句段为空),然后执行finally段里的程序代码(不论有没有发生错误都关闭数据库),里面是嵌套一个try{}catch{}来试着关闭数据库。
try{
stmt
=
conn.prepareStatement(sql);
//这里是一个sql语句的字符串,如select
*
from
表
where
字段一
=?;
?表的是占位符,
从下面的stmt.setString(1,nickname);
可以看出有一个占位符
stmt.setString(1,nickname);
//给这个占位符赋值
rs
=
stmt.executeQuery();
//执行sql语句
if(rs.next()){
//如果查出有数据
%>
=
"reg.jsp"
/>
<%
}else{
haveuser
=
1;
//out.print("用户名不存在");
}
}catch(SQLException
e){
}finally{
try{
//如果一些相关连接没关闭,则强制关闭
if(rs
!=null)
rs.close();
if(stmt
!=null)
stmt.close();
}catch(SQLException
e1){
}
}