多占位符 PreparedStatement 完整示例 1、多条件 SQL 场景2 个占位符演示需求根据user_id和username双重条件查询用户java运行// 1. SQL 带两个 ? 占位符 String sql SELECT user_id, username, age FROM t_user WHERE user_id ? AND username ?; PreparedStatement pst conn.prepareStatement(sql); // 2. 按占位符顺序设置参数下标从 1 开始 // 第一个 ? 赋值 int 类型 userId pst.setInt(1, userId); // 第二个 ? 赋值字符串类型 username pst.setString(2, 张三); // 3. 执行查询 ResultSet rs pst.executeQuery();2、多种数据类型混合占位符新增 age、create_time 4 个占位符需求新增用户INSERT 语句4 个不同类型占位符java运行// 4个占位符int、varchar、int、date String insertSql INSERT INTO t_user(user_id, username, age, create_time) VALUES (?, ?, ?, ?); PreparedStatement pst conn.prepareStatement(insertSql); // 依次给每个 ? 赋值 pst.setInt(1, 10001); // 第1位int 用户ID pst.setString(2, 李四); // 第2位字符串用户名 pst.setInt(3, 25); // 第3位int 年龄 pst.setDate(4, new Date(System.currentTimeMillis())); // 第4位日期 // 执行增删改使用 executeUpdate() int affectRows pst.executeUpdate();3、常用 setXxx 方法对照表表格占位符数据类型赋值方法整数 intsetInt(下标, 值)字符串 varcharsetString(下标, 值)小数 doublesetDouble(下标, 值)日期 datesetDate(下标, Date对象)布尔 booleansetBoolean(下标, true/false)4、关键注意点占位符下标从 1 开始不是 0第一个?是1赋值顺序必须和 SQL 中?出现顺序一一对应不同类型使用对应set方法类型不匹配会抛数据库异常不管多少个占位符都能完全防止 SQL 注入。5、完整可运行带遍历结果集示例java运行import java.sql.*; public class JdbcMultiParamDemo { public static void main(String[] args) throws SQLException { Connection conn DriverManager.getConnection(jdbc:mysql://localhost:3306/test, root, 123456); // 两个占位符查询 String sql SELECT user_id, username, age FROM t_user WHERE age ? AND username LIKE ?; PreparedStatement pst conn.prepareStatement(sql); // 第一个?年龄大于20 pst.setInt(1, 20); // 第二个?模糊匹配带张的名字 pst.setString(2, %张%); ResultSet rs pst.executeQuery(); // 遍历结果集 while (rs.next()) { int id rs.getInt(user_id); String name rs.getString(username); int age rs.getInt(age); System.out.println(id: id name: name age: age); } // 关闭资源规范写法 rs.close(); pst.close(); conn.close(); } }
💡
读完这篇文章,你可以带走什么

本文来自编程新知一线开发与建站实战沉淀:讲清原理、给出可复现步骤、标注避坑要点。看完后可以直接在你的项目或网站中落地验证。

编
编程新知内容团队
一线开发 · 建站实施 · 持续更新
由资深前端工程师、后端架构师与建站实施人员共同维护,坚持"真实案例 + 完整步骤 + 避坑指南"的内容准则。如果你在落地中遇到问题,欢迎联系我们交流。

想把这套方案用到自己的项目上?

编程新知提供技术答疑与网站建设一站式服务,欢迎联系我们获取针对性建议。

联系工程师
📚

系统学习该技术

进入对应栏目,从基础到进阶完整学习,配套案例与避坑指南。

前往栏目 →
🏗️

需要落地实施

企业建站、SEO 优化、服务器部署等需求,交给工程师一步到位。

了解服务 →
💬

还有疑问

技术难题或方案咨询,联系编程新知获取一对一的专业建议。

联系我们 →