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;
}
}