package com.itheima.jdbc;
import org.junit.Test;
import java.sql.*;
/**
* JDBC API 详情:Result
*/
public class JDBCDemo7_PreparedStatement {
@Test
public void testPreparedStatement() throws Exception {
// 2. 获取连接:如果连接的是本机mysql并且端口是默认的3306 可以简化,(简化,就是端口号和ip不写)
// 这里的127.0.0.1 可以写成localhost 不想要红色警告可以设置参数后面的键值对(前面加问号)
// useSSL=false (Java的键值对是 键=值 这里不能有空格
String url = "jdbc:mysql:///db1?useSSL=false"; // db1 是数据库名
String userName = "root";
String passWord = "123456";
Connection connection = DriverManager.getConnection(url, userName, passWord);
// 接收用户输入的 用户名和密码
String name = "dfdsfsdf";
String pwd = "' or '1' = '1";
// 定义sql // 用户名和密码用?代替
String sql = "select * from tb_user where username = ? and password = ?";
// 获取pstmt对象
PreparedStatement pstmt = connection.prepareStatement(sql);
// 设置?号的值, 该问号是什么类型的值,就set什么
pstmt.setString(1,name); // 第一个值写name变量
pstmt.setString(2,pwd); // 第二个值写密码
// 执行sql
ResultSet rs = pstmt.executeQuery();
// 判断是否登录成功: 使用ResultSet的next方法,先向下移动一行查看是否有效行
if (rs.next()) {// 如果是有效行(代表有数据)
System.out.println("登录成功");
} else {
System.out.println("登录失败");
}
// 7. 释放资源
rs.close();
pstmt.close();
connection.close();
//
//
//
}
}