将准备好的语句与 JDBCTemplate 结合使用

2024-04-09

我正在使用 JDBC 模板,并希望使用准备好的语句从数据库中读取数据。我迭代 .csv 文件中的多行,并在每一行上使用相应的值执行一些 SQL 选择查询。

我想加快从数据库的读取速度,但我不知道如何让 JDBC 模板与准备好的语句一起使用。

有的是准备语句创建者 http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/jdbc/core/PreparedStatementCreator.html准备语句设置器 http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/jdbc/core/PreparedStatementSetter.html. As in 这个例子 http://www.java2s.com/Code/Java/Spring/PreparedStatementCreatorAndPreparedStatementSetter.htm它们都是用匿名内部类创建的。 但在PreparedStatementSetter 类中,我无法访问要在准备好的语句中设置的值。

由于我正在迭代 .csv 文件,因此我无法将它们硬编码为字符串,因为我不知道它们。 我也无法将它们传递给PreparedStatementSetter,因为构造函数没有参数。将我的值设置为最终值也很愚蠢。

我习惯于创建相当简单的准备好的语句。就像是

PreparedStatement updateSales = con.prepareStatement(
    "UPDATE COFFEES SET SALES = ? WHERE COF_NAME LIKE ? ");
updateSales.setInt(1, 75); 
updateSales.setString(2, "Colombian"); 
updateSales.executeUpdate():

就像在这个Java教程 http://java.sun.com/docs/books/tutorial/jdbc/basics/prepared.html.


默认情况下,JDBCTemplate做自己的PreparedStatement在内部,如果你只是使用.update(String sql, Object ... args)形式。 Spring 和您的数据库将为您管理已编译的查询,因此您不必担心打开、关闭、资源保护等问题。这是 Spring 的优点之一。Spring 2.5 相关文档的链接。 http://docs.spring.io/spring/docs/2.5.6/api/org/springframework/jdbc/core/JdbcTemplate.html#query%28java.lang.String,%20java.lang.Object%5B%5D,%20int%5B%5D,%20org.springframework.jdbc.core.RowMapper%29希望它能让事情变得更清楚。此外,语句缓存可以在 JDBC 级别完成,如以下情况所示至少有一些 Oracle 的 JDBC 驱动程序。 http://docs.oracle.com/cd/B10501_01/java.920/a96654/stmtcach.htm这将比我能胜任的更详细。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将准备好的语句与 JDBCTemplate 结合使用 的相关文章

  • 是否有任何简单(且最新)的 Java 框架可用于在 Swing 应用程序中嵌入电影?

    我正在构建一个小型 Swing 应用程序 我想在其中嵌入一部电影 重要的是 这个应用程序是一个 WebStart 应用程序 并且该库应该能够打包在我启动的 jnlp 中 即 不依赖于本机库 我知道并尝试过 JMF 但我认为与其他框架相比 其
  • Spring Data JPA 选择不同

    我有一个情况 我需要建立一个select distinct a address from Person a 其中地址是 Person 内的地址实体 类型的查询 我正在使用规范动态构建我的 where 子句并使用findAll Specifi
  • 身份验证在 Spring Boot 1.5.2 和 Oauth2 中不起作用

    我正在使用带有 spring boot 1 5 2 RELEASE 的 Oauth2 当我尝试重写 ResourceServerConfigurerAdapter 类的配置方法时 它给了我一个编译错误 但这在 Spring boot 1 2
  • 通往楼梯顶部的可能路径

    这是一个非常经典的问题 我听说谷歌在他们的面试中使用过这个问题 问题 制定一个递归方法 打印从楼梯底部到楼梯顶部的所有可能的独特路径 有 n 个楼梯 您一次只能走 1 步或 2 步 示例输出 如果它是一个有 3 级楼梯的楼梯 1 1 1 2
  • 在 Wildfly 中与 war 部署共享 util jar 文件

    假设我有一个名为 util jar 的 jar 文件 该 jar 文件主要包含 JPA 实体和一些 util 类 无 EJB 如何使这个 jar 可用于 Wildfly 中部署的所有 war 无需将 jar 放置在 war 的 WEB IN
  • 使用 Guice 优化注册表

    你好 今天思考了一种优化 有一些疑问 语境 我正在使用 Guice 2 进行 Java 开发 在我的网络应用程序中 我有一个转换器注册表 可以即时转换为某种类型 转换器描述如下 public class StringToBoolean im
  • 了解joda时间PeriodFormatter

    我以为我明白了 但显然我不明白 你能帮我通过这些单元测试吗 Test public void second assertEquals 00 00 01 OurDateTimeFormatter format 1000 Test public
  • Java实现累加器类,提供Collector

    A Collector具有三种通用类型 public interface Collector
  • Freemarker 和 Struts 2,有时它计算为序列+扩展哈希

    首先我要说的是 使用 Struts2 Freemarker 真是太棒了 然而有些事情让我发疯 因为我不明白为什么会发生这种情况 我在这里问是因为也许其他人有一个想法可以分享 我有一个动作 有一个属性 说 private String myT
  • 流中的非终结符 forEach() ?

    有时 在处理 Java Stream 时 我发现自己需要一个非终端 forEach 来触发副作用但不终止处理 我怀疑我可以用 map item gt f item 之类的方法来做到这一点 其中方法 f 执行副作用并将项目返回到流中 但这似乎
  • 在 SWT/JFace RCP 应用程序中填充巨大的表

    您将如何在 SWT 表中显示大量行 巨大是指超过 20K 行 20 列的东西 不要问我为什么需要展示那么多数据 这不是重点 关键是如何让它尽可能快地工作 这样最终用户就不会厌倦等待 每行显示某个对象的实例 列是其属性 一些 我想使用 JFa
  • 使用布尔值进行冒泡排序以确定数组是否已排序

    我有以下用于冒泡排序的代码 但它根本不排序 如果我删除布尔值那么它工作正常 我知道 由于我的 a 0 小于所有其他元素 因此没有执行交换 任何人都可以帮助我解决这个问题 package com sample public class Bub
  • JMenu 中的文本居中

    好吧 我一直在网上寻找有关此问题的帮助 但我尝试的任何方法似乎都不起作用 我想让所有菜单文本都集中在菜单按钮上 当我使用setHorizontalTextPosition JMenu CENTER 没有变化 事实上 无论我使用什么常量 菜单
  • “无法实例化活动”错误

    我的一个 Android 应用程序拥有大约 100 000 个用户 每周大约 10 次 我会通过 Google 的市场工具向我报告以下异常情况 java lang RuntimeException Unable to instantiate
  • OpenCSV:将嵌套 Bean 映射到 CSV 文件

    我正在尝试将 bean 映射到 CSV 文件 但问题是我的 bean 具有其他嵌套 bean 作为属性 所发生的情况是 OpenCSV 遍历属性找到一个 bean 然后进入其中并映射该 bean 内的所有数据 如果找到另一个 bean 它就
  • 泛型、数组和 ClassCastException

    我想这里一定发生了一些我不知道的微妙事情 考虑以下 public class Foo
  • 在浏览器刷新中刷新检票面板

    我正在开发一个付费角色系统 一旦用户刷新浏览器 我就需要刷新该页面中可用的统计信息 统计信息应该从数据库中获取并显示 但现在它不能正常工作 因为在页面刷新中 java代码不会被调用 而是使用以前的数据加载缓存的页面 我尝试添加以下代码来修复
  • 洪水填充优化:尝试使用队列

    我正在尝试创建一种填充方法 该方法采用用户指定的初始坐标 检查字符 然后根据需要更改它 这样做之后 它会检查相邻的方块并重复该过程 经过一番研究 我遇到了洪水填充算法并尝试了该算法 它可以工作 但无法满足我对 250 x 250 个字符的数
  • Java EE 目录结构

    我对以下教程有疑问 http www mkyong com jsf2 jsf 2 internationalization example http www mkyong com jsf2 jsf 2 internationalizatio
  • 在java中使用多个bufferedImage

    我正在 java 小程序中制作游戏 并且正在尝试优化我的代码以减少闪烁 我已经实现了双缓冲 因此我尝试使用另一个 BufferedImage 来存储不改变的游戏背景元素的图片 这是我的代码的相关部分 public class QuizApp

随机推荐

  • System.IO.FileSystemWatcher 监视网络服务器文件夹 - 性能注意事项

    我想查看网络服务器上的文件夹树的更改 这些文件都有特定的扩展名 树中大约有 200 个文件夹和大约 1200 个带有我正在查看的扩展名的文件 我无法编写在服务器上运行的服务 禁止 因此解决方案必须位于客户端本地 及时性并不是特别重要 我可以
  • 键监听器与键绑定? [复制]

    这个问题在这里已经有答案了 可能的重复 比较 KeyListener 和 Key Bindings 之间的功能 https stackoverflow com questions 8664250 comparing functionalit
  • WCF路由——如何以编程方式正确添加过滤表

    我正在使用 WCF 4 路由服务 并且需要以编程方式配置该服务 而不是通过配置 我见过的这样做的例子很少见 创建一个 MessageFilterTable 如下 var filterTable new MessageFilterTable
  • 如何在 Android 中的列表视图中显示联系人(适用于 Android api 11+)

    如果这看起来像同一个问题一百万次 我很抱歉 但是谷歌搜索没有提供任何结果 只是一堆过时的教程使用managedQuery以及其他已弃用的解决方案 我经历了用于检索联系人列表的 Android 开发人员培训 http developer an
  • 有没有办法将operator.itemgetter与切片表示法一起使用?

    我在 python 列表中有一堆 numpy 数组lst 我可以对这些数组之一进行切片 通过使用以下命令对其进行索引来获取特定视图 1 例如 我需要将此切片操作应用于所有 numpy 数组lst 使用生成器理解 我可以这样做 my arra
  • Terraform - 迭代模板中的对象列表

    我在迭代由 解释的模板内的对象列表时遇到问题templatefile功能 我有以下变量 variable destinations description A list of EML Channel Destinations type li
  • 将参数放入webservlet的url中

    我正在使用 Webservlet 我想在 url 本身中传递参数 就像是 WebServlet profile id public class ProfileServlet extends HttpServlet Override publ
  • 如何重新加载当前的路线守卫?

    假设我有一条有守卫的路线AdminGuard 只有当我是管理员时才允许我进入 但是当我在那个页面上点击Logout状态通过 Observables 传播到所有应用程序中 但我仍然处于一条我不应该处于的路线中 因为我已经注销了 如何 重新激活
  • PHP 对齐数组键值

    我在 Google 上搜索了两天 并尝试查看 PHP 手册 但我仍然不记得那个对齐 PHP 数组键值的函数 我正在寻找的只是需要这个的函数 Array 0 gt 1 3 gt 2 4 gt 3 7 gt 4 9 gt 5 并将其转换成这样
  • 查找早于 FILE 的文件而不包含 FILE

    我有一个计划要使用find给我一个比某些 FILE 更旧的文件列表 然后使用xargs or exec 将文件移动到其他地方 搬东西不是问题 xargs mv trash工作正常 现在 如果我尝试使用 newer FILE then FIL
  • Django 注销问题

    这是我在 Django 身份验证中遇到的问题 访问需要登录的页面 注销 访问 django contrib auth logout 访问原始登录保护页面 您仍处于登录状态 有什么想法如何解决这个问题吗 我的 Django 会话设置是 SES
  • Gradle 自定义插件:添加扩展对象的依赖项

    我正在尝试编写一个插件来添加依赖项project dependencies根据插件扩展对象中收集的信息 但这似乎是不可能的 事实上 来自扩展对象的数据仅在新任务或project afterEvaluate关闭 但在这些地方添加的依赖项将被忽
  • 如何更改图像中的像素

    我实际上尝试执行以下操作 我已在 bitmapdata 对象中加载了外部图像 并从中创建了一个位图 我将其附加到 sprite MovieClip 以便在其上包含鼠标事件 现在 根据前面的逻辑 我加载了两个相同大小的图像 比方说圆圈 其中一
  • 区分 gcc 诊断

    我在解释 gcc 4 8 2 警告和错误时遇到问题 更准确地说 很难判断一个问题从哪里结束 另一个问题从哪里开始 我只能通过控制台访问构建机器 因此不能选择使用 IDE 我真的需要能够快速区分各个问题 有没有办法让 GCC 在不同的诊断消息
  • 如何在 Visual Studio Code 的 Zen 模式下显示选项卡?

    In Visual Studio Code how to you keep tabs the tabs from hiding when you enter Zen mode Ctrl K Z 我自己回答这个问题 因为我不得不这样做几次 而
  • Java常量示例(创建仅包含常量的java文件)

    声明只有常量的 java 文件的最佳实践是什么 public interface DeclareConstants String constant Test OR public abstract class DeclareConstants
  • PHP中虚函数的正确实现?

    在我的工作场所 仅限 php 我们有一个数据库抽象的基类 当您想要将新的数据库表添加到基础层时 您必须创建该基类的子类并重写一些方法来定义使用该表的单独行为 正常行为应该保持不变 现在我在我们公司见过很多新程序员 他们只是重写默认行为的方法
  • 通过指针创建字符串

    我了解到指针指向内存地址 因此我可以使用它来更改该地址处设置的值 像这样 int pPointer iTuna pPointer这里有内存地址iTuna 所以我们可以使用pPointer改变值iTuna 如果我打印pPointer内存地址被
  • SQL Server 时区更改

    我在同一个 SQL Server 上有 2 个数据库 是否有可能一个在太平洋标准时间 另一个在东部标准时间 不 日期 时间源自运行 SQL Server 实例的计算机的操作系统 不过 您可以拥有一个自定义 UDF 您可以调用该 UDF 而不
  • 将准备好的语句与 JDBCTemplate 结合使用

    我正在使用 JDBC 模板 并希望使用准备好的语句从数据库中读取数据 我迭代 csv 文件中的多行 并在每一行上使用相应的值执行一些 SQL 选择查询 我想加快从数据库的读取速度 但我不知道如何让 JDBC 模板与准备好的语句一起使用 有的