MySql驱动(jar包)下载:https://pan.baidu.com/s/19BYnGbO3l5MOOic5K4Ooaw 密码:mwoh
Demo.java:
package cn.xxx.demo;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;
/*
* 防止SQL注入攻击
* Statement接口实现类。 该类对象用于执行SQL语句,返回结果集
* 有一个子接口PreparedStatement (SQL语句可以预编译存储,多次高效的执行SQL;也可以防sql注入)
*
*/
public class Demo {
public static void main(String[] args)throws Exception {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/mybase";
String username = "root";
String password = "123";
Connection con = DriverManager.getConnection(url, username, password);
Scanner sc = new Scanner(System.in);
String user = sc.nextLine();
String pass = sc.nextLine();
String sql = "SELECT * FROM users WHERE username=? AND PASSWORD=?"; // ?表示占位符
PreparedStatement pst = con.prepareStatement(sql); // PreparedStatement可以防sql注入,也可以对sql语句预编译存储,多次高效的执行sql
pst.setObject(1, user); //调用pst对象set方法,设置?占位符上的参数
pst.setObject(2, pass);
ResultSet rs = pst.executeQuery(); // 执行查询SQL语句;sql语句已经预编译,不需要再传sql语句。
while(rs.next()){
System.out.println(rs.getString("username")+" "+rs.getString("password"));
}
rs.close();
pst.close();
con.close();
}
}