1,第一步准备JDBC对应数据库的jar包我这里准备的是mysql的环境
这是mysql对应的jar包:https://downloads.mysql.com/archives/c-j/
下载完成后解压
把jar包引入到项目当中去这以idea教育版为例
打开项目结构
导入解压的MySQL的jar 文件
2,初始化部分完毕现在开始准备代码部分
其中MySQL的环境部分会专门出一期进行简单讲解
主函数部分,里面主要包括了两个函数一个用来获得用户输入,一个对比用户账号密码是否正确
这两个函数会分开讲解
主函数
public static void main(String[] args) throws SQLException {
//这里使用map做返回值是为了后面更方便的比较账号密码是否正确
Map<String,String> val=intoUI();
//这个方法使用JDBC去判断账号密码是否正确
boolean islogin= tologin(val);
//输出成功或失败的语句
System.out.println(islogin?"登录成功":"登录失败账号或密码错误");
}
intoUI() 函数以map的形式获得用户的输入信息
private static Map<String, String> intoUI() {
//创建map类用来存储用户输入
Map<String,String> m=new HashMap<>();
//创建键盘输入流对象
Scanner sc=new Scanner(System.in);
//获得用户输入账号
System.out.println("请输入账号:");
String login=sc.nextLine();
//获得用户输入密码
System.out.println("请输入密码:");
String password=sc.nextLine();
//将账号密码存到map当中去
m.put("login",login);
m.put("password",password);
return m;
}
tologin()函数去mysql中验证账号密码是否正确
private static boolean tologin(Map<String,String> m) throws SQLException {
//定义好需要在try外面用到的变量
boolean flat=false; //这个是判断是否登录成功的标识默认为false
Connection conn=null;
Statement statement=null;
ResultSet rslogin=null;
try {
//注册数据库 可以理解为对数据库类型的声明
DriverManager.registerDriver(new Driver());
//建立起连接 需要传入的三个值分别为 url user password
//url格式(jdbc:mysql://ip地址/数据库名)root(数据库用户名)password(数据库密码) conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/user","root","shuyu404");
//根据账号在mysql中进行查询的SQL语句
String sql1="select password from t_user where uid='"+m.get("login")+"'";
//创建数据库操作对象
statement = conn.createStatement();
//让数据库操作对象执行sql语句进行查询并且返回 ResultSet 结果
rslogin= statement.executeQuery(sql1);
//判断返回结果是否为空,如果为空则说明没有此账号
if(rslogin.next()){
//判断通过查询返回的密码与用户的输入是否一致 如果一致则把标记改为ture
if(rslogin.getString(1).equals(m.get("password"))){
flat=true;
}
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
//对资源由内到外以此关闭
rslogin.close();
statement.close();
conn.close();
}
返回判断结果
return flat;
}
现在代码部分结束了让我们运行一下
和数据库中的数据保持一致此案例成功
下面是案例的全部代码
package JDBC;
import com.mysql.cj.jdbc.Driver;
import java.sql.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class JDBC实现登录 {
public static void main(String[] args) throws SQLException {
Map<String,String> val=intoUI();
boolean islogin= tologin(val);
System.out.println(islogin?"登录成功":"登录失败账号或密码错误");
}
private static boolean tologin(Map<String,String> m) throws SQLException {
boolean flat=false;
Connection conn=null;
Statement statement=null;
ResultSet rslogin=null;
try {
DriverManager.registerDriver(new Driver());
conn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/user","root","shuyu404");
String sql1="select password from t_user where uid='"+m.get("login")+"'";
statement = conn.createStatement();
rslogin= statement.executeQuery(sql1);
if(rslogin.next()){
if(rslogin.getString(1).equals(m.get("password"))){
flat=true;
}
}
} catch (SQLException e) {
e.printStackTrace();
}finally {
rslogin.close();
statement.close();
conn.close();
}
return flat;
}
private static Map<String, String> intoUI() {
Map<String,String> m=new HashMap<>();
Scanner sc=new Scanner(System.in);
System.out.println("请输入账号:");
String login=sc.nextLine();
System.out.println("请输入密码:");
String password=sc.nextLine();
m.put("login",login);
m.put("password",password);
return m;
}
}