gpt4 book ai didi

java - 在不使用字符串连接的情况下使用动态模式进行查询

转载 作者:行者123 更新时间:2023-11-30 08:03:25 24 4
gpt4 key购买 nike

我有一个使用 Oracle 数据库的系统,其模式与应用程序用户不同。模式名称本身是事先不知道的,所以我们不能只是硬编码。这是一个系统属性。

大部分数据访问是通过 Hibernate 进行的,它可以在连接时指定默认模式,因此在这些情况下这不是问题。

但是,有几个地方使用纯 SQL 查询(使用 spring jdbcTemplate)。所以现在我们有一些东西可以归结为:

Map<String,Object> result = jdbcTemplate.queryForMap("SELECT A, B, C FROM "+schema+".TABLE WHERE blablablah");

当然,这是一个开放的 SQL 注入(inject)漏洞。我们正在计划安全审计,这肯定会被标记出来。

所以问题是:我如何在查询中指定模式,是使用 jdbcTemplate、另一个 Sprint 数据访问实用程序,还是使用普通的 jdbc?

谢谢,JGN

最佳答案

您可以使用 Connection.setSchema 指定 JDBC 连接的模式。这应该在您创建执行 SQL 命令的语句之前完成。

关于java - 在不使用字符串连接的情况下使用动态模式进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36311682/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com