我们继续使用上一节课封装好的JDBC工具类去做一个案例
登录案例
需求:
1、 通过键盘录入用户名和密码;
2、 判断用户是否登录成功;
select * from user where username = "xxx" and password = "xxx";
如果这个sql有查询结果,则成功,反之则失败
步骤:
1、 我们先创建一个DB,如下:;
CREATE TABLE USER(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(32),
PASSWORD VARCHAR(32)
);
INSERT INTO USER VALUES(NULL,"zzq01","123");
INSERT INTO USER VALUES(NULL,"zzq02","234");
SELECT * FROM USER;
效果如下:
2、 写一个登录方法,并且先做一个最基本的判断;
/**
* 登录方法
*/
public boolean login(String username, String password) {
if (username == null && password == null) {
return false;
}
}
3、 使用我们之前封装的JDBC工具类去获取连接;
//1.获取连接
conn = JDBCUtils.getConnection();
4、 定义查询sql语句;
//2.定义sql
String sql = "select * from user
where username = '" + username + "' and password = '" + password + "'";
5、 判断逻辑;
//3.获取执行sql的对象
stmt = conn.createStatement();
//4.执行查询
rs = stmt.executeQuery(sql);
如果有下一行即rs.next()
就返回true,反之则返回false
所以我们直接
return rs.next();
6、 使用我们封装的JDBC工具类去释放资源;
finally {
JDBCUtils.close(rs, stmt, conn);
}
7、 最后写一个main;
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 JDBCDemo10().login(username, password);
//3.判断结果,输出不同语句
if (flag) {
System.out.println("登录成功");
} else {
System.out.println("账号或密码错误");
}
}
整体代码如下:
package com.zzq;
import util.JDBCUtils;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
/**
* 登录案例
*/
public class JDBCDemo10 {
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 JDBCDemo10().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;
try {
//1.获取连接
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()) { // 如果有下一行就证明有查询结果
// return true;
// } else {
// return false;
// }
return rs.next();
} catch (SQLException e) {
e.printStackTrace();
} finally {
JDBCUtils.close(rs, stmt, conn);
}
return false; //如果发生了异常就返回false
}
}
运行效果: