JAVA模拟用户登录小练习
需求:键盘输入账户密码,验证登录成功与否:
配置文件与工具类在上一篇我的上一篇文章内有。
需求代码实现:
import java.sql.*;
import java.util.Scanner;
/**
* 通过键盘录入用户名和密码
* 判断登录是否成功
*/
public class jdbcdemo8 {
public static void main(String[] args) {
//1.键盘录入,输入账户和密码
Scanner scanner = new Scanner(System.in);
System.out.println("请输入账户!");
String username = scanner.nextLine();
System.out.println("请输入密码!");
String password = scanner.nextLine();
//调用查询方法
boolean login = new jdbcdemo8().login(username, password);
//判断并输出结果
if (login) {
System.out.println("登录成功!");
} else {
System.out.println("用户名或密码错误!");
}
}
/**
* 登录方法
*
* @param username
* @param password
* @return
*/
Connection connections = null;
Statement statement = null;
ResultSet resultSet = null;
public boolean login(String username, String password) {
//如果账户和密码其中为空则返回false 用短路或
if (username == null || password == null) {
return false;
}
//连接数据库判断是否成功
//第一步获取连接 使用工具类
try {
connections = JDBC_utils.getConnections();
//第二步 定义sql语句 使用字符变量连接符++
String sql = "select * from user where username = '" + username + "' and password = '" + password + "' ";
//第三步获取执行sql语句的对象
statement = connections.createStatement();
//第四步执行sql语句
resultSet = statement.executeQuery(sql);
//第五步判断查询结果返回布尔值
return resultSet.next();//ResultSet.next()返回布尔值
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBC_utils.Close(resultSet, statement, connections);//利用工具类进行释放资源
}
return false;
}
}
第二种 防止sql注入的登录方式
import java.sql.*;
import java.util.Scanner;
/**
* 通过键盘录入用户名和密码
* 判断登录是否成功
*/
public class jdbcdemo8 {
public static void main(String[] args) {
//1.键盘录入,输入账户和密码
Scanner scanner = new Scanner(System.in);
System.out.println("请输入账户!");
String username = scanner.nextLine();
System.out.println("请输入密码!");
String password = scanner.nextLine();
//调用查询方法
boolean login = new jdbcdemo8().login(username, password);
//判断并输出结果
if (login) {
System.out.println("登录成功!");
} else {
System.out.println("用户名或密码错误!");
}
}
/**
* 登录方法
*
* @param username
* @param password
* @return
*/
Connection connections = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
public boolean login(String username, String password) {
//如果账户和密码其中为空则返回false 用短路或
if (username == null || password == null) {
return false;
}
//连接数据库判断是否成功
//第一步获取连接 使用工具类
try {
connections = JDBC_utils.getConnections();
//第二步 定义sql语句 使用字符变量连接符++
String sql = "select * from user where username =? and password =?";
//第三步获取执行sql语句的对象
// statement = connections.createStatement();
preparedStatement = connections.prepareStatement(sql);//防止sql注入的执行sql对象
preparedStatement.setString(1,username);
preparedStatement.setString(2,password);
//第四步执行sql语句
resultSet = preparedStatement.executeQuery();
//第五步判断查询结果返回布尔值
return this.resultSet.next();//ResultSet.next()返回布尔值
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBC_utils.Close(resultSet, preparedStatement, connections);//利用工具类进行释放资源
}
return false;
}
}