需求:
-
通過鍵盤錄入用戶名和密碼
-
判斷用戶是否登錄成功
- select * from user where username = “” and password = “”;
* 如果這個sql有查詢結果,則成功,反之,則失敗
步驟:
1、創建數據庫表
CREATE TABLE USER(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(32),
PASSWORD VARCHAR(32)
);
INSERT INTO USER VALUES(NULL,'zhangsan','123');
INSERT INTO USER VALUES(NULL,'lisi','234');
2、代碼實現
public class JDBCDemo9 {
public static void main(String[] args) {
//1.鍵盤錄入,接受用戶名和密碼
Scanner sc = new Scanner(System.in);
System.out.println("請輸入用戶名:");
String username = sc.nextLine();
System.out.println("請輸入密碼:");
String password = sc.nextLine();
//2.調用方法
boolean flag = new JDBCDemo9().login(username, password);
//3.判斷結果,輸出不同語句
if(flag){
//登錄成功
System.out.println("登錄成功!");
}else{
System.out.println("用戶名或密碼錯誤!");
}
}
/**
* 登錄方法
*/
public boolean login(String username ,String password){
if(username == null || password == null){
return false;
}
//連接數據庫判斷是否登錄成功
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
//1.獲取連接
try {
conn = JDBCUtils.getConnection();
//2.定義sql
String sql = "select * from user where username = '"+username+"' and password = '"+password+"' ";
//3.獲取執行sql的對象
stmt = conn.createStatement();
//4.執行查詢
rs = stmt.executeQuery(sql);
//5.判斷
/* if(rs.next()){//如果有下一行,則返回true
return true;
}else{
return false;
}*/
return rs.next();//如果有下一行,則返回true
} catch (SQLException e) {
e.printStackTrace();
}finally {
JDBCUtils.close(rs,stmt,conn);
}