问题标签 [jdbctemplate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1659 浏览

jdbctemplate - jdbcTemplate 和 Oracle 10

试图做一个插入,我有: jdbcTemplate.update("insert into....", new Object[]{foo.getId(), foo.getName()}) foo.getId() 返回一个 long,并且getName() 一个字符串。我将“NUMBER”作为 Oracle 中的 id 类型,将 varchar2 作为名称字段。

我遇到了 SQLtype 未知问题。update 方法有一个版本,我不必输入 SQL 类型,但我必须,如果是,怎么做?

0 投票
1 回答
6865 浏览

mysql - 使用 MySQL 的 Spring JDBCTemplate 表锁定

我只是将我们的一个应用程序从纯 JDBC 迁移到 Spring 的 JDBCTemplate。我想知道如何为表创建写锁。我只是执行“LOCK TABLE foo”查询还是在 JDBCTemplate 中有通用的方法来执行此操作?

谢谢!

0 投票
4 回答
10122 浏览

java - 如何使用 Spring 和 JDBCTemplate 取消长时间运行的查询?

JDBCjava.sql.Statement类有一个cancel()方法。这可以在另一个线程中调用以取消当前正在运行的语句。

如何使用 Spring 实现这一目标?我找不到在运行查询时获取对语句的引用的方法。我也找不到类似取消的方法。

这是一些示例代码。想象一下,这需要 10 秒才能执行,有时根据用户的请求,我想取消它:

我将如何修改它以便引用一个java.sql.Statement对象?

0 投票
1 回答
12464 浏览

jdbc - 如何在 SimpleJdbcTemplate 上设置QueryTimeout?

Spring 框架有两个相似的类:JdbcTemplate 是旧的 Java 1.4 类,而 SimpleJdbcTemplate 是较新的,具有更好的方法。

JdbcTemplate 有一个方法setQueryTimeout,它基本上让我可以访问在底层 Statement 对象上具有相同名称的方法。

有没有办法用SimpleJdbcTemplate做类似的事情?

解决方案:根据 skaffman 的回答,我SimpleJdbcTemplate自己从 a 创建对象JdbcTemplate,所以现在我可以做任何我想做的事情。代码:

有点拗口,但完成了工作。

更新:这确实比必要的复杂。看答案。

0 投票
5 回答
202525 浏览

java - 如何有效地使用 Spring 的 JDBCTemplate 执行 IN() SQL 查询?

我想知道是否有更优雅的方式来使用 Spring 的 JDBCTemplate 进行 IN() 查询。目前我做这样的事情:

这是相当痛苦的,因为如果我有九行仅用于构建 IN() 查询的子句。我想要类似准备好的语句的参数替换

0 投票
3 回答
12127 浏览

java - 将 JDBCTemplate 与 Hibernate SessionFactory 一起使用?

我们有一个 Spring/Hibernate 应用程序,出于性能和开发时间的原因,希望添加少量 JDBC。我可以使这个 dao 子类 HibernateDaoSupport 并使用会话的连接来执行我的 JDBC,但我宁愿使用 JdbcTemplate。然而,JdbcTemplate 是使用 java.sql.Datasource 初始化的。如何使用我现有的 Hibernate SessionFactory 来初始化它?

0 投票
4 回答
633 浏览

mysql - 确保 MySQL 键的唯一性

我有一个 MySQL DB,其中一个键(一个字符串)是从第三方源读取的。但是,这些并不总是保证是唯一的(它们是电影片名)。因此,我需要检查键的唯一性,如果不是唯一的,则对其进行修改以使其唯一 - 例如,通过在键的末尾添加增量计数。

这样做的最佳模式是什么?我目前有一个表,它存储从第 3 方收到的每个密钥并存储一个计数,所以我这样做:

我正在使用 jdbcTemplate 和 keyHolder 来检索新(或更新)行的 ID。问题是我还需要恢复计数。我现在当然可以进行第二次查询 (SELECT) 以获取具有该 ID 的记录。但是这里的问题是并发性。有可能(尽管不太可能),在我执行 SELECT 之前发生另一个具有相同第三方密钥的 INSERT。在这种情况下,计数将第二次增加,我会得到错误的计数。

有任何想法吗?

谢谢理查德。

0 投票
2 回答
2363 浏览

java - postgresql 中的 JdbcTemplate 批量更新 - 日期丢失时间?

我正在插入java.util.date格式为YYYY-MM-DDThh:mm:ssTZD( 2008-09-26T14:34:59+02:00) 的对象列表。

SQL:

插入 cdate (key,valuedate,user_id) VALUES(?,?,?)

日期格式正确,但在 PostgreSQL 中它只是这样保存:“ 2008-09-26 00:00:00+02

编辑:我之前很着急......我没有提供足够的信息,抱歉。

0 投票
1 回答
5819 浏览

java - 使用 NamedParameterJdbcTemplate 更新数组字段

dblArrayFld我在表中有一个双精度数组字段myTable,我想使用 Spring 更新它NamedParameterJdbcTemplate(我正在使用 Postgres)。

我正在运行这样的代码:

这将返回一个错误,在“$2”处或附近读取语法错误

我假设我在 :myarray 上的语法在这里有问题。我还尝试过:myarray以下方式进行封装:

  • dblArrayFld={:myarray}
  • dblArrayFld={ :myarray }
  • dblArrayFld=[:myarray]
  • dblArrayFld=ARRAY[:myarray]
  • dblArrayFld=(:myarray)

这里的正确语法是什么?

0 投票
3 回答
36246 浏览

java - Java 编程 - Spring 和 JDBCTemplate - 使用查询、queryForList 还是 queryForRowSet?

我的 Java (JDK6) 项目使用SpringJDBCTemplate进行所有数据库访问。我们最近从 Spring 2.5 升级到 Spring 3 (RC1)。该项目不使用像HibernateEJB这样的 ORM 。

如果我需要读取一堆记录,并对它们进行一些内部处理,似乎有几种(重载)方法:query、queryForList 和 queryForRowSet

使用一个而不是另一个的标准应该是什么?有性能差异吗?最佳实践?

您能否推荐一些外部参考资料以进一步研究该主题?