java.sql 接口 PreparedStatement 表示预编译的 SQL 语句的对象 是Statement的子类
特点:
性能高、会把sql语句预先编译、sql语句中的参数会发生变化,过滤掉用户输入的关键字
public class LoginDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入账号:");
String account = sc.next();
System.out.println("请输入密码:");
String password = sc.next();
//注册驱动
try {
Class.forName("com.mysql.jdbc.Driver");
//建立链接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mydb3", "root", "abcd");
//创建发送sql语句对象
PreparedStatement pstmt = conn.prepareStatement("select * from stu where account=? and password=?");
//创建对象时,就要把sql语句放进去,会对给定的sql进行预先编译。
pstmt.setString(1, account);//给占位符赋值,1代表第一个占位符
pstmt.setString(2, password);
//执行sql,返回结果
ResultSet rs = pstmt.executeQuery();
//处理结果
if(rs.next()) {
System.out.println("登陆成功!欢迎你:"+rs.getString("name"));
}else {
System.out.println("登陆失败!!!");
}
//关闭资源
rs.close();
pstmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}