基于preparedStatement方式优化
1 package com.atsyc.api.preparedstatement; 2 3 /* 4 * 使用预编译statement完成用户登录 5 * 6 * TODO: 7 * 防止注入攻击,演示preparedstatement完成用户登录 8 */ 9 10 import java.sql.*; 11 import java.util.Scanner; 12 13 public class PSUserLoginPart { 14 public static void main(String[] args) throws ClassNotFoundException, SQLException { 15 //1.获取用户输入信息 16 Scanner scanner = new Scanner(System.in); 17 System.out.println("请输入账号:"); 18 String account = scanner.nextLine(); 19 System.out.println("请输入密码:"); 20 String password = scanner.nextLine(); 21 22 //2.ps的数据库流程 23 //(1)注册驱动 24 Class.forName("com.mysql.cj.jdbc.Driver"); 25 //(2)获取连接 26 Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/atsyc","root","Yican030615"); 27 /* 28 * statement 29 * 1.创建statement 30 * 2.拼接SQL语句 31 * 3.发送SQL语句,并且获取返回结果 32 * 33 * preparedstatement 34 * 1.编写SQL语句结果 不包含动态值部分的语句,动态值部分使用占位符 ? 替代(只能替代动态值) 35 * 2.创建preparedStatement,并且传入动态值 36 * 3.动态值 占位符 赋值 ? 单独赋值即可 37 * 4.发送SQL语句即可,并获取返回结果 38 */ 39 //(3)编写SQL语句结果 40 String sql = "SELECT * FROM t_user WHERE account = ? and password = ? ; "; 41 //(4)创建预编译statement并设置SQL语句结果 42 PreparedStatement preparedStatement = connection.prepareStatement(sql); 43 //(5)单独的占位符进行赋值 44 /* 45 * 参数1:index 占位符的位置 从左向右数 从1开始 账号 ? 1 46 * 参数2:object 占位符的值 可以设置任何类型的数据,避免了我们拼接和类型更加丰富 47 */ 48 preparedStatement.setObject(1,account); 49 preparedStatement.setObject(2,password); 50 //(6)发送SQL语句,获取返回结果 51 /* 52 * statement.excuteUpdate / executeQuery(String sql); 53 * preparedStatement.excuteUpdate / executeQuery(); TODO:因为他已经知道语句,知道语句动态值 54 */ 55 ResultSet resultSet = preparedStatement.executeQuery(); 56 //(7)结果集解析 57 if(resultSet.next()){ 58 System.out.println("登陆成功!"); 59 }else{ 60 System.out.println("登陆失败!"); 61 } 62 63 } 64 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!