package userce;
import java.sql.*;
import java.io.*;
import java.util.*;
public class UserCheck {
Connection con;
ResultSet rs;
public UserCheck() { }
public Connection getConnect(){ //连接数据库的,不用在多说了吧
try{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}
catch(ClassNotFoundException e){}
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=flDataSource";
String name = "sa";//建议设计数据库时,不要用默认的sa,可以建立一个有操作权限的用户;
String pass = "sa";
try{
con = DriverManager.getConnection(url,name,pass);
}
catch(SQLException e){}
return con;
}
public boolean userExist(String username){
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
boolean occupied=true;
try{
String sqlquery="select *from Userlist where username=?";
con=this.getConnect();
//this.getConnect()=getConnect();//关于this 的用法,我到现在理解的也不是太透彻,我这样用,在实际操作中是通过的,如果有不妥之处,请高手指教.
ps=con.prepareStatement(sqlquery);
ps.setString(2,username);
rs=ps.executeQuery();
if(!rs.next())
occupied=false;
}
catch(SQLException e){
e.printStackTrace();
}
finally{
if(rs!=null) try{rs.close();}
catch(SQLException ignore){}
if(ps!=null) try{ps.close();}
catch(SQLException ignore){}
if(con!=null) try{con.close();}
catch(SQLException ignore){}
}
return occupied;
}
public boolean isValidUser(String username,String userpwd){//此函数用来判断是否有此用户,其实很好理解我定义成boolean型,就可以根据返回值来进行一个<jsp:forword="mmm.jsp">.
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
boolean isValid=false;
try{
String sqlquery="select *from Userlist where username=? and userpwd=?";
con=this.getConnect();
ps=con.prepareStatement(sqlquery);
ps.setString(1,username);
ps.setString(2,userpwd);
rs=ps.executeQuery();
if(rs.next())
isValid=true;
}
catch(SQLException e){
e.printStackTrace();
}
finally{
if(rs!=null) try{rs.close();}
catch(SQLException ignore){}
if(ps!=null) try{ps.close();}
catch(SQLException ignore){}
if(con!=null) try{con.close();}
catch(SQLException ignore){}
}
return isValid;
}
public int getUserPri(String username){ //次方法我用来根据传入的参数:username(我设置session时,用的也是username,根据检索数据库中的0,1标志位,来判断用户的权限,这样就可以进行相应的操作.)
Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;
int pri=0;
try{
String sqlquery="select variety from Userlist where username=? ";
con=this.getConnect();
ps=con.prepareStatement(sqlquery);
ps.setString(1,username);
rs=ps.executeQuery();
if(rs.next())
pri=rs.getInt("variety");
}
catch(SQLException e){
e.printStackTrace();
}
finally{
if(rs!=null) try{rs.close();}
catch(SQLException ignore){}
if(ps!=null) try{ps.close();}
catch(SQLException ignore){}
if(con!=null) try{con.close();}
catch(SQLException ignore){}
}
return pri;
}
}