当前位置: 首页 > 知识库问答 >
问题:

在java中存储sql查询的最佳方式是什么

乐华晖
2023-03-14

我正在使用java servlet编写一个简单的服务器。为了从数据库中获取数据,我编写了一个特殊的Dao层类,我想知道我应该在哪里存储SQL查询?

@Override
    public boolean checkIsUserExists(String login) {
        try {
            PreparedStatement preparedStatement =
                    connection.prepareStatement("select * from clients where login=?");
            preparedStatement.setString(1, login);
            ResultSet resultSet = preparedStatement.executeQuery();
            if (resultSet.next()) {
                return true;
            }

        } catch (SQLException e) {
            e.printStackTrace();
        }


        return false;
    }

我需要创建一个特殊的类sqlquerys,将查询存储为最终字符串,还是有更有效的方法来实现?

共有2个答案

羊毅庵
2023-03-14

这取决于你想投入多少时间。

如果只是一些查询,并且您不想产生太多开销,那么创建一个带有最终字符串的java类,并在必要时引用它们。所以这条线

联系prepareStatement(“从登录=?”的客户端选择*”;

会变成:连接。prepareStatement(SQLQueries.SELECT_CLIENTS);

当你使用JavaServlet(这是严重过时),我认为这将是足够的:)

如果它的数据量更大,你也可以使用liquibase和MySQLExpressServer2014一起改变结构(两者都是免费的),或者直接运行脚本。sql类。

如果你真的想惹麻烦或者知道自己在做什么,那么可以选择使用Spring/Spring Boot。

裴彦
2023-03-14

由于这是一个常量,建议使用这样的常量类:

//cannot be extended
public final class Constants {

   //private constructor
   private Constants(){}
   public static String SQL_FIND_CLIENTS_FOR_LOGIN="select * from clients where login=?;
}

现在在主类中执行静态导入并使用它:

import static Constants.SQL_FIND_CLIENTS_FOR_LOGIN;
 类似资料:
  • 问题内容: 我想在SQL Server中存储一个代表百分比的值,哪种数据类型应该是首选? 问题答案: 十进制(p,s)和数字(p,s) p(精度): 将存储的最大十进制数字总数(在小数点的左边和右边) s(比例): 将存储在小数点右边的小数位数(-> s定义小数位数) 0 <= s <= p。 p …总位数 s …小数点右边的位数 ps …小数点左边的位数 例子: 结果: 链接:msdn.micr

  • 问题内容: 我的简化人为示例如下: 可以说,我想每天测量和存储世界上所有城镇的温度(和其他值)。我正在寻找一种存储数据的最佳方式,以使获取所有城镇中的当前温度与获取一个城镇历史上的所有温度一样容易。 这是一个很容易解决的问题,但我正在寻找最佳解决方案。 我能想到的2个主要选项如下: 将所有当前记录和归档记录存储在同一表中。 IE 这将使所有事情变得简单,但是最有效的查询是获取城镇列表和当前温度的列

  • 问题内容: 查看URL存在并且响应不是404的最佳方法是什么? 问题答案: 您可以使用 手册中的示例2 : 第一个数组元素将包含HTTP响应状态代码。您必须解析它。 请注意,示例中的函数将发出HTTP HEAD请求,这意味着它将不会获取URL的正文。这比使用GET请求(也将返回正文)更有效。 还要注意,通过设置 默认 上下文,任何使用http流上下文的后续调用现在都将发出HEAD请求。因此,确保完

  • 我有一点困惑,我想澄清一下。我有东西在做。我想有一个Kafka Streams拓扑,将有五个独立的KStreams从他们各自的主题读取数据,并将这些数据转储到一个大的整体主题。接下来,我将有一个GlobalKTable,它将从这个整体主题中读取并实现一个全局存储,比方说叫做。我想把这个实体化的全局存储作为其他Kafka Streams应用程序的“查找”表。我已经阅读了一些关于使用带有配置的RPC层

  • 问题内容: 在Java桌面应用程序中存储密码的推荐方式是什么? 我希望用户只能输入一次凭证,而不会再次提示。 在个人项目中,我一直在使用Preferences API,但我假设这与以纯文本格式存储(安全方面)没有什么不同。 非常感谢 编辑: 非常感谢您的建议。毫无疑问,这似乎有些混乱,因为我可能还没有把问题弄清楚。 我将给出一个假设的情况: 假设我正在为远程数据库创建一个简单的前端,该前端使用用户

  • 有一个 K8S 群集,我们的大多数部署只是更新映像的版本,但有时我们也希望更新部署配置的某些部分。我们的部署配置不包括映像的标记。 对于更新映像版本似乎是我最好的选择。至于一起更新部署配置和映像,我看到了几种方法: < li>kubectl部署...:< code>kubectl集合图像...[但是有两个部署] < li >使用实际图像标记编辑部署YAML[看起来不太优雅] < li>kubect