带有 where 子句的 SQL select 语句

2023-12-01

如果没有硬编码值,我将如何编写这个 sql 语句?

resultSet = statement
    .executeQuery("select * from myDatabase.myTable where name = 'john'");
// this works

而是有类似的东西:

String name = "john"; 
resultSet = statement
    .executeQuery("select * from myDatabase.myTable where name =" + name);
// Unknown column 'john' in 'where clause' at
// sun.reflect.NativeConstructorAccessorImpl.newInstance0...etc...

提前致谢..


以当前的方式构建 SQL 查询是一个糟糕的想法,因为它为各种 SQL 注入攻击打开了大门。要正确执行此操作,您必须使用准备好的报表反而。这也将解决您目前明显遇到的各种转义问题。

PreparedStatement statement = connection.prepareStatement("select * from myDatabase.myTable where name = ?");    
statement.setString(1, name);    
ResultSet resultSet = statement.executeQuery();

注意prepareStatement()是一个昂贵的调用(除非您的应用程序服务器使用语句缓存和其他类似设施)。理论上,最好准备一次语句,然后多次重复使用它(尽管not同时):

String[] names = new String[] {"Isaac", "Hello"};
PreparedStatement statement = connection.prepareStatement("select * from myDatabase.myTable where name = ?");

for (String name: names) {
    statement.setString(1, name);    
    ResultSet resultSet = statement.executeQuery();
    ...
    ...
    statement.clearParameters();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有 where 子句的 SQL select 语句 的相关文章

  • 关于 Cassandra 与 MySQL 的一些建议

    几天前我在这里问了一个问题 得到了一些非常好的答案 我正在考虑做一个带有个人资料 个人简介等的facebook风格的网站 并询问我是否应该使用mysql 答案是使用Cassandra 因为好多了 我只是问这是每个人都会建议的 只是我对mys
  • If Else 条件的 SQLite 语法

    我正在使用 SQLite 数据库 我的表有一个名为 密码 的文本列 早些时候 为了检索我用来执行简单操作的值select from myTable询问 但现在的要求是 如果Password值不是NULL那么我需要将其显示为 是 或 否 它是
  • H2数据库:如何进行加密保护,而不暴露文件加密密钥

    我们在服务器模式下使用Java H2数据库 因为我们不希望用户访问数据库文件 为了对数据库文件添加更多保护 我们计划使用 AES 加密 将 CIPHER AES 添加到数据库 URL 以防存储被盗 但是 每个用户在连接时还需要提供文件保护密
  • Selenium 和 TestNG 同时使用“dependsOn”和“priority =”问题

    我正在努力在 GUI 自动化测试中实现更好的工作流程控制 我首先从dependsOn开始 但很快发现缺点是如果一个测试失败 则套件的整个其余部分都不会运行 所以我改用 priority 但看到了意外的行为 一个例子 Test priorit
  • Java Junit 测试 HTTP POST 请求

    我需要测试以下方法而不改变方法本身 该方法向服务器发出 POST 方法 但我需要制作一个独立于服务器的测试用例 在将其重定向到本地文件之前 我测试了类似的方法 但为此我将协议指定为文件 主机名指定为 localhost 端口指定为 1 我的
  • 如何避免Eclipse在将类名放在注释中时导入类,以便checkstyle稍后不会抱怨?

    有时我将类名放在方法或类的注释中只是为了引用 但是 Eclipse 会自动执行导入并在文件中留下导入语句 这会导致稍后出现 未使用的导入 检查样式错误 当我在注释中输入类名时 是否可以更改一些配置以避免 Eclipse 自动导入 人们不同意
  • for循环中更新JLabel的问题

    我的程序的想法是从之前在其他 JFrame 中保存的列表中选择一个名称 我想在标签中一个接一个地打印所有名称 它们之间有很小的延迟 然后停在其中一个名称上 问题是lbl setText String 如果有多个则不起作用setText co
  • 从复选框列表中选择循环生成的复选框中的一个复选框

    抱歉我的英语不好 在我的 ASP NET 网站上 我从 SQL 表导入软件列表 看起来像这样 但实际上要长得多 Microsoft Application Error Reporting br br Microsoft Applicatio
  • 如何限制两个表之间一对多关系中的多个数量?

    我有一个带有两个 MySql 表的 MySQL 数据库 第一个是第一个表 表 A 有一列具有唯一值 从值 从 1 到 n 在第二个表 2 表 B 中 我有两列 在第一个表中我有一个名称 在第二个我的值从 1 到 n 如果我在 中添加一个值
  • java中如何重新初始化int数组

    class PassingRefByVal static void Change int pArray pArray 0 888 This change affects the original element pArray new int
  • jDBI中如何进行内查询?

    我怎样才能在 jDBI 中执行这样的事情 SqlQuery select id from foo where name in
  • 获取 Future 对象的进度的能力

    参考 java util concurrent 包和 Future 接口 我注意到 除非我弄错了 只有 SwingWorker 实现类才能启动冗长的任务并能够查询进度 这就引出了以下问题 有没有办法在非 GUI 非 Swing 应用程序 映
  • Spring - 如何在不匹配列名的情况下使用 BeanPropertyRowMapper

    我正在开发一个应用程序 该应用程序已使用行映射器从纯 JDBC 转换为 Spring 模板 我遇到的问题是数据库中的列与属性名称不匹配 这阻止我使用BeanPropertyRowMapper容易地 我看到一些关于在查询中使用别名的帖子 这会
  • 为什么 java.util.Arraylist#clear 按照 OpenJDK 中的方式实现?

    http grepcode com file repository grepcode com java root jdk openjdk 6 b14 java util ArrayList java 473 http grepcode co
  • SQL Server 标识列值从 0 而不是 1 开始

    我遇到了一个奇怪的情况 数据库中的某些表的 ID 从 0 开始 即使 TABLE CREATE 的 IDENTITY 1 1 也是如此 对于某些表来说是这样 但对于其他表则不然 它一直有效到今天 我尝试过重置身份列 DBCC CHECKID
  • 检查按钮是否可用?如果没有,请等待 5 秒钟,然后再次检查?

    基本上我想看看此刻是否可以单击按钮 如果没有我想再试一次 所以我需要某种 goto 函数来返回到代码的前一行 尽管我怀疑我写得非常糟糕 但它本来可以做得更容易 try driver findElement By xpath button i
  • Firebase:用户注册后如何进行电话号码验证?

    所以我知道我可以使用电子邮件验证或电话号码验证 但我想做的是在用户注册或登录后进行电话号码验证 如何连接这两种身份验证方法 最后 Firebase中是否有一个函数可以检查用户是否通过电话号码验证 谢谢 即使用户已通过身份验证 您仍然可以使用
  • com.sun.xml.ws.message.saaj.SAAJHeader 无法转换为 com.sun.xml.ws.security.opt.impl.outgoing.SecurityHeader

    我正在尝试访问第三方 Web 服务 该服务要求我创建一个传递时间信息 用户名和密码的安全标头 我在网上搜索了可行的示例 并尝试了多种方法 我正在尝试使用 Java 6 中内置的内容来做到这一点 我不确定我做错了什么 从 WSDL 生成 We
  • Unicode(希腊语)字符存储在数据库中,例如“??????”

    数据库中的希腊字符就像问号 我找不到解决办法 我使用 Java Swing 开发了一个应用程序 但是当我在 MySQL 中插入希腊字母时 就像问号一样 我将数据库排序规则更改为 utf8 并将列也更改为 utf8 我的项目编码设置为UTF
  • Postgresql:SERIAL 在约束 INSERT 失败时递增

    有一个像这样的简单表结构 CREATE TABLE test id INT PRIMARY KEY sid SERIAL 我注意到如果我尝试插入一行但它未通过约束测试 即主键约束 SERIAL计数器无论如何都会增加 所以下一次成功插入 si

随机推荐

  • 批量复制所有文件而不覆盖

    set dSource C Games Steam steamapps set dTarget E Demos set fType dem xcopy i dSource fType dTarget 这就是我目前必须复制所有文件的方法 但是
  • 如何使用 C# 获取 GAC 的位置?

    我怎样才能得到的位置GAC目录使用C Windows 注册表中是否存在条目 UPDATE 我需要该位置 因为我想枚举和分析位于 GAC 中的程序集 Bye 如果您想枚举 GAC 中的内容 例如编写系统管理工具 您最好的选择是使用 fusio
  • 名称由单下划线分割的 ASP.NET Core 选项模式

    我正在尝试使用 ASP NET Core 选项模式加载我的应用程序设置 The appsettings json包含 TEst hello TEST ABC 2 POCO类 public class AppSetting public st
  • li:将鼠标悬停在访问过的颜色上

    在我的 li 元素中 我有一个链接和一个跨度中包含的一些文本 当我将鼠标悬停在 li 上时 我想更改文本和链接的颜色 这效果很好 但是我正在努力设置访问的颜色并保留此功能 这是我的代码 HTML ul class tour 1 li spa
  • 为什么不能在 for 循环内操作“i”[重复]

    这个问题在这里已经有答案了 为什么 for i in range 10 i 1 print i return 1 2 3 4 5 6 7 8 9 10 代替 2 4 6 8 10 如果需要更多细节 这里将提供一些细节 for i in ra
  • php scandir 产生额外的元素(2 个点)

    Hi 我在名为 content 的目录中有以下文件 index php page1 php page2 php 和 page3 php 然后我有这个代码 column scandir content foreach column as va
  • 在VLOOKUP中动态更改源工作簿的文件路径

    我想要一个包含文件路径的单元格 C Documents Costs Costing 2017 xls Sheet2 A D 将用于VLOOKUP在工作簿其余部分的不同工作表中发挥作用 目前 我的文件路径位于名为 Master Sheet 的
  • 获取二进制文件 C 的哈希值

    我想获取我所知道的名称的二进制文件的哈希值 我尝试过以下方法 但后来意识到SHA1 返回字符串 文件名 的哈希值 但我想在文件本身上运行它 任何关于如何做到这一点的指示都会很棒 char fileName bin ls unsigned c
  • scalaz 中的类型类和继承

    这是我第二次尝试定义问题 我无法理解它 我希望能够定义一个代数类型并在其上定义一个简单的类型类 比方说Show 在哈斯克尔我做 data Tree a EmptyTree Node a deriving Show 现在 如果我输入Empty
  • 使用 Linq 从 IEnumerable 中提取数据并将其存储在数据表中

    我有一个如下所示的数据表 public static DataTable SetColumnHeaders DataTable KeyDataTable KeyDataTable Columns Add First Name typeof
  • 在内联 html img 标签中显示带有图像标签的 SVG

    为了将 SVG 转换为 PNG 我将 svg insideHTML 内容放入 img 标签中 如下所示 img src gt SVG 图片无法正确显示 尤其是 SVG 标签内的图片 如下所示 其他 svg 标签正确显示
  • 尝试为文件 附加自动命名数据库失败。存在同名数据库

    我的项目的 App Data 文件夹中有 ASPNETDB MDF 数据库 当我尝试添加用户时出现错误 MembershipUser user Membership CreateUser viewModel Username viewMod
  • MVC2 RTM - 使用实体框架模型绑定复杂对象

    我是 MVC 新手 并且真的很挣扎于我认为这应该是一个非常常见的场景 我正在使用 MVC2 RTM 和模型对象的实体框架 我正在做的工作 包含子对象集合的父对象的编辑视图 该表单显示父对象的所有可编辑字段 并迭代并显示所有关联子对象的所有可
  • Wordpress - 无需插件即可按视图获取 5 个热门帖子

    Hi 我有自定义字段 其中包含帖子中的图像 并且我想显示按视图排序的前 5 个帖子 我正在使用 WordPress 您能帮我吗 对不起 我的英语不好 Thanks 有一个错误Xhynk的参考 它运行的查询按字母顺序返回帖子 1 2 20 2
  • Postgres - 使用 postgis 计算距离

    经过几天的寻找 并尝试了我找到的所有内容后 我来这里询问如何使用 PostGis 计算 Postgres 上两点之间的距离 我有一张名为 位置 的表 该表有一个点类型的 坐标 列 当用户在应用程序上插入值时 我需要获取按近距离排序的位置 我
  • 从对象字典创建 Django 表单

    我觉得这一定很简单 但经过几天的尝试 我正式一无所知 我有一个字典 其中键是对象 值是对象列表 以下是我想如何使用该信息来构建表单 for object in dictionary name of field object slug nam
  • 如何从 iPad 键盘上删除或禁用特定文本字段的语言首选项键

    1 需要从 iPad 键盘上删除或禁用特定文本字段的按键 如图所示 设置在故事板中 或手动 textField setKeyboardType UIKeyboardTypeASCIICapable
  • 使用 PHP 重写 URL

    我有一个如下所示的网址 url com picture php id 51 我该如何将该 URL 转换为 picture php Some text goes here 51 我认为 WordPress 也有同样的作用 如何在 PHP 中创
  • 应用程序无法在 WAMP 上运行,但可以在在线服务器上运行

    我使用在线 SQLite 数据库制作了一个基本的登录应用程序 http demo3534535 16mb com 它在在线服务器上运行良好 现在我想在 Gennymotion 模拟器中使用 WAMP 在本地服务器上运行 我必须对代码进行哪些
  • 带有 where 子句的 SQL select 语句

    如果没有硬编码值 我将如何编写这个 sql 语句 resultSet statement executeQuery select from myDatabase myTable where name john this works 而是有类