JDBC用户登录业务实现Plus版
作者:互联网
JDBC用户登录业务实现
一、初始化用户界面
package com.happy.lesson1;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class JDBCTest06 {
public static void main(String[] args) {
//初始化用户界面(说白了就是定义一个方法用来接收用户输入的账号和密码)
Map<String,String> userLoginInfo = initUI();
//验证用户名和密码
}
private static Map<String,String> initUI() {
Scanner sc = new Scanner(System.in);
//接收用户名
System.out.println("请输入用户名:");
String loginName = sc.nextLine();
//接收密码
System.out.println("请输入密码:");
String loginPwd = sc.nextLine();
//定义一个集合存放用户名和密码
Map<String, String> userLoginInfo = new HashMap<String, String>();
userLoginInfo.put("loginName",loginName);
userLoginInfo.put("loginPwd",loginPwd);
return userLoginInfo;
}
}
运行结果:
二、登录方法的实现
说白了就是定义一个方法,验证用户名和密码,并且返回Boolean值
这是整体代码:
package com.happy.lesson1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.Scanner;
public class JDBCTest06 {
public static void main(String[] args) throws Exception {
//初始化用户界面(说白了就是定义一个方法用来接收用户输入的账号和密码)
Map<String,String> userLoginInfo = initUI();
//验证用户名和密码
//定义一个方法接收集合,并返回boolean值
boolean loginSuccess = login(userLoginInfo);
System.out.println(loginSuccess?"登录成功":"登录失败");
}
private static boolean login(Map<String, String> userLoginInfo) throws Exception {
//不是一开始想到的,而是处理结果集需要打标点,然后跳转到这里继续写代码
boolean loginSuccess = false;
//JDBC编程6步
ResourceBundle jdbc = ResourceBundle.getBundle("JDBC");
String driver = jdbc.getString("driver");
String url = jdbc.getString("url");
String user = jdbc.getString("user");
String password = jdbc.getString("password");
//1.注册驱动
Class.forName(driver);
//2.获取连接
Connection conn = DriverManager.getConnection(url, user, password);
//3.获取数据库操作对象
Statement stmt = conn.createStatement();
//4.执行sql
String loginName = userLoginInfo.get("loginName");
String loginPwd = userLoginInfo.get("loginPwd");
String sql = "select * from t_user where loginName = '"+loginName+"' and loginPwd = '"+loginPwd+"'";
ResultSet rs = stmt.executeQuery(sql);
//5.处理结果集
if (rs.next()){
//登录成功 --> 想到打标点 回到 前面定义一个boolean标点
//将标点改变boolean值
loginSuccess = true;
}
//6.关闭资源
rs.close();
stmt.close();
conn.close();
//先关闭资源再返回值
return loginSuccess;
}
private static Map<String,String> initUI() {
Scanner sc = new Scanner(System.in);
//接收用户名
System.out.println("请输入用户名:");
String loginName = sc.nextLine();
//接收密码
System.out.println("请输入密码:");
String loginPwd = sc.nextLine();
//定义一个集合存放用户名和密码
Map<String, String> userLoginInfo = new HashMap<String, String>();
userLoginInfo.put("loginName",loginName);
userLoginInfo.put("loginPwd",loginPwd);
return userLoginInfo;
}
}
这是实现登录验证的代码部分:
private static boolean login(Map<String, String> userLoginInfo) throws Exception {
//不是一开始想到的,而是处理结果集需要打标点,然后跳转到这里继续写代码
boolean loginSuccess = false;
//JDBC编程6步
ResourceBundle jdbc = ResourceBundle.getBundle("JDBC");
String driver = jdbc.getString("driver");
String url = jdbc.getString("url");
String user = jdbc.getString("user");
String password = jdbc.getString("password");
//1.注册驱动
Class.forName(driver);
//2.获取连接
Connection conn = DriverManager.getConnection(url, user, password);
//3.获取数据库操作对象
Statement stmt = conn.createStatement();
//4.执行sql
String loginName = userLoginInfo.get("loginName");
String loginPwd = userLoginInfo.get("loginPwd");
String sql = "select * from t_user where loginName = '"+loginName+"' and loginPwd = '"+loginPwd+"'";
ResultSet rs = stmt.executeQuery(sql);
//5.处理结果集
if (rs.next()){
//登录成功 --> 想到打标点 回到 前面定义一个boolean标点
//将标点改变boolean值
loginSuccess = true;
}
//6.关闭资源
rs.close();
stmt.close();
conn.close();
//先关闭资源再返回值
return loginSuccess;
}
三、数据库数据
四、运行
运行结果(正确输入):
运行结果(错误输入):
五、个人理解
1、用户输入账号和密码,数据保存在一个集合中
举例:用户输入账号:test,密码:123
那么就会放入2个键值对,loginName(键)--test(值)、loginPwd(键)--123(值)
2、sql执行
String loginName = userLoginInfo.get("loginName");
String loginPwd = userLoginInfo.get("loginPwd");
String sql = "select * from t_user where loginName = '"+loginName+"' and loginPwd = '"+loginPwd+"'";
String loginName获取的是真实的数值test,String loginPwd获取的是真实的数值123,sql语句会根据这两个条件去数据库的表格查询是否符合条件,如果符合就会有结果集
//sql语句执行并返回结果集
ResultSet rs = stmt.executeQuery(sql);
//5.处理结果集
if (rs.next()){
//登录成功 --> 想到打标点 回到 前面定义一个boolean标点
//将标点改变boolean值
loginSuccess = true;
}
3、要学会打标点的思想
标签:loginName,String,登录,boolean,userLoginInfo,JDBC,Plus,sql,loginPwd 来源: https://www.cnblogs.com/happy-lin/p/14984898.html