mysql列表:

JAVA代码:
第一段用statement方法,有sql注入危险,实际工程一般不会使用
package cn.itcast.jdbc;
import java.sql.*;
import java.util.Scanner;
public class jdbcDemo3 {
// 创建user表
// create table USER(
// id INT PRIMARY KEY AUTO_INCREMENT,
// username VARCHAR(32),
// password VARCHAR(32)
// );
public static void main(String[] args) {
//1.输入用户名和密码
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
System.out.println("请输入密码:");
String username = sc.nextLine();
String password = sc.nextLine();
//2.调用login方法
boolean flag = new jdbcDemo3().login(username, password);
//3.判断结果 输出语句
if(flag) System.out.println("登录成功");
else System.out.println("登录失败");
}
public boolean login(String username,String password){
//连接数据库
//*****
Statement stmt = null;
Connection conn = null;
ResultSet rs = null;
//1.导入jar包
//2.注册驱动
try {
Class.forName("com.mysql.cj.jdbc.Driver");
//3.获取数据库连接对象
conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/user_id?serverTimezone=GMT%2b8","root","sujie123");
//4.定义sql语句
String sql = "select * from USER where username = '"+username+"'and password = '"+password+"'";
//5.获取执行的对象statement
stmt = conn.createStatement();
//6.执行sql语句
//int count = //更新语句
rs = stmt.executeQuery(sql);
//7.处理结果
return rs.next();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}finally {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return false;
}
}
第二段代码用PrepareStatement方法,安全性更高,主要在于获取用户名和密码验证方式不同
package cn.itcast.jdbc;
import java.sql.*;
import java.util.Scanner;
public class jdbcDemo3 {
// 创建user表
// create table USER(
// id INT PRIMARY KEY AUTO_INCREMENT,
// username VARCHAR(32),
// password VARCHAR(32)
// );
public static void main(String[] args) {
//1.输入用户名和密码
Scanner sc = new Scanner(System.in);
System.out.println("请输入用户名:");
String username = sc.nextLine();
System.out.println("请输入密码:");
String password = sc.nextLine();
//2.调用login方法
boolean flag = new jdbcDemo3().login(username, password);
//3.判断结果 输出语句
if(flag) System.out.println("登录成功");
else System.out.println("登录失败");
}
public boolean login(String username,String password){
//连接数据库
//*****
PreparedStatement pstmt = null;
Connection conn = null;
ResultSet rs = null;
//1.导入jar包
//2.注册驱动
try {
Class.forName("com.mysql.cj.jdbc.Driver");
//3.获取数据库连接对象
conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/user_id?serverTimezone=GMT%2b8","root","sujie123");
//4.定义sql语句
String sql = "select * from USER where username =? and password =?";
//5.获取执行的对象statement
pstmt = conn.prepareStatement(sql);
//赋值操作
pstmt.setString(1,username);
pstmt.setString(2,password);
//6.执行sql语句
//int count = //更新语句
rs = pstmt.executeQuery();
//7.处理结果
return rs.next();
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}finally {
try {
pstmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return false;
}
}
输出结果:

812



被折叠的 条评论
为什么被折叠?



