package com.test;
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 TestMain {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
Scanner inputScanner=new Scanner(System.in);
String uname=inputScanner.nextLine();
String upass=inputScanner.nextLine();
Class.forName("org.gjt.mm.mysql.Driver");
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/yt",
"root",
"yangting");
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from t_user where uname=' "+uname+" ' and upass=' "+upass+" ' ");
System.out.println(rs.next());
stmt.close();
conn.close();
}
}
数据表里对应的用户名和密码为 dmc 和 123
如果从控制台输入dmc 和 123,打印结果为false
控制台输入dmc 和 123' or 321 ,打印结果为true
如果sql 语句中变量uname 和 upass 换成常量,打印结果为true
有大神知道是什么原因吗
把sql语句打印出来看看,是不是有空格
没有结果集,很明显是没有连接到数据库或者连接到了,字母或字典符号加多或少了或错了bug一下看看