Java 学习: JDBC 简介
- JDBC ( Java DataBase Connectivity,java 数据库连接)是一种用于执行 SQL 语句的 Java API ,可以为多种关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。 JDBC 提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序
- Java 具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是 Java 应用程序与各种不同数据库之间进行对话的方法。
- JDBC 可以在各种平台上使用 Java ,如 Windows , Mac OS 和各种版本的 UNIX 。
- JDBC 库包括通常与数据库使用相关的下面提到的每个任务的 API 。
JDBC 实现验证登录
- 创建Scanner 对象 , 提示并获取获取用户输入用户名和密码
- 连接数据库。
- 把用户输入的用户名和密码当做查询条件写入 sql 语句
- 执行查询 , 获取查询结果
- 根据查询结果判定用户输入的账号和密码是否正确
验证登录代码思路
* 键盘输入用户名和密码,对比数据库中的用户信息,判断是否登录成功
* 1 、连接数据库
* MyJDBCUtils.getConnection()
* 2 、获取请求对象 stmt
* conn.createStmtement()
* 3 、创建键盘对象,获取用户名和密码
* 3.1 创建键盘录入对象
* 3.2 提示用户输入
* 3.3 获取用户输入内容
* 4 、编写 SQL 语句,把用户名和密码放入 SQL 语句中
* 5 、执行查询 , 获取查询结果
* stmt.executeQuery(sql);
* 6 、根据查询结果判断登录是否成功
* 7 、关闭连接
JDBC 实现登录验证 案例代码
package com.qf.demos;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;
public class Demo05 {
public static void main(String[] args) throws SQLException {
String url = "jdbc:mysql://localhost:3306/class";
String user = "root";
String password = "root";
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
Scanner sc = new Scanner(System.in);
System.out.println(" 请输入用户名 :");
String name = sc.nextLine();
System.out.println(" 请输入密码 :");
String pwd = sc.nextLine();
String sql = "select * from user where username='" + name + "' and password='" + pwd + "'";
// String sql = "select * from user where username='zhangsan' and password='lisi' or '1'='1'";
ResultSet resultSet = stmt.executeQuery(sql);
System.out.println(resultSet);
if (resultSet.next()) {
System.out.println(" 登录成功! ");
} else {
System.out.println(" 用户名或密码! ");
}
resultSet.close();
stmt.close();
conn.close();
sc.close();
}
}
运行代码后我们正常输入类似 :
用户名: zhangsan 密码 : sanzhang
这样的用户名和密码 , 获取到的内容可以和数据库中的内容对比 , 得到对应的结果
如果有用户输入类似 :
用户名 : zhangsan 密码 :s ansan ’ o r ‘1’=’1
这样的内容时 , 即便是错误的结果也会验证通过 , 因为SQL 语句被编写成了 : select * from userinfo where username=’’ and password=’’ or ‘1’=’1’;
这样验证的结果总是正确的 , 这种情况我们称之为SQL 注入
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69942977/viewspace-2654588/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/69942977/viewspace-2654588/