java - PreparedStatement,对多个“?”使用一个参数
问题描述
如果不存在查询,我有一个插入,如下所示。
BEGIN
IF NOT EXISTS (SELECT * FROM tbl_sampleTable WHERE name = ? or subject = ?)
BEGIN
INSERT INTO tbl_sampleTable VALUES (?,?)
END
END
我正在使用 JDBC PreparedStatement 执行上述查询,如下所示
pst.setString(1, name);
pst.setString(2, subject);
pst.setString(3, subject);
pst.setString(4, name);
pst.executeUpdate();
我将这些名称和主题作为方法参数,无论如何我可以为多个“?”提供值?具有相同的参数,因为它们是相同的,而不是每次提到它们两次。
编辑:如果相关,我不使用 spring 或任何其他框架。
解决方案
JDBC 不支持命名参数,但是 Spring JDBC 通过NamedParameterJdbcTemplate提供了这个功能
推荐阅读
- android - Expo中的动画FlatList在android中具有奇数的偏移值
- sql - 使用 SQL 搜索和更新通配符/unicode 字符
- svn - SVN:为什么命令 'svnadmin load' 在没有 pre-revprop-change 挂钩的情况下工作,但 'svnrdump load' 需要它?
- javascript - TypeScript:我无法让浮点/十进制数学正常工作。(82.80000000000001,但应该是 82.8)
- javascript - 如何检测 textarea 内容是否已随 JavaScript 更改
- python - 如何根据较早的值将数据帧的行附加到不同的列表中?
- javascript - JavaScript for loop 不需要的循环
- html - 使用在项目之间放置垂直间距
- performance - 访问被拒绝查找属性“persist.vendor.camera.privapp.list”如何解决这个问题?
- javascript - 如何在 WebView Android 中包含 JavaScript