问题标签 [spring-jdbc]

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 回答
2714 浏览

java - 如何使用列表中的值分配变量?

我正在运行此代码:

我想用列表中返回的值设置上面的五个变量。如何?

0 投票
2 回答
101 浏览

sql - Jdbc 检查类型兼容性

有什么方法可以预先检查 java 类型是否与 a 兼容sql.Types

我可以输入所有的东西,比如:

if (BIGINT||TINYINT) try BigInteger.parse(myvalue)if (TIME||DATE||TIMESTAMP) try new Date(Long.parse(myvalue))

这会产生大量代码。他们是某种通用的预检查方式吗?

编辑:我说的是插入,所以我想做一些预检查,以避免插入时出现 sql 异常

0 投票
3 回答
24614 浏览

mysql - 在 Spring Security 中使用 mysql 数据库对用户进行身份验证?

我想使用 Spring 安全性在我的 Web 应用程序中对用户进行身份验证。由于我不是 Spring 框架的成熟用户,我无法清楚地了解如何进行配置设置以使用 jdbc-user-service ..我做了以下配置。但它不工作

..谁能帮我解决一个示例配置文件的问题。提前致谢。

0 投票
4 回答
27199 浏览

java - 比较 Querydsl、jOOQ、JEQUEL、activejdbc、iciql 和其他查询 DSL

有人可以指出一些关于可用于 Java 的不同 Query DSL 库之间性能比较的资源,例如:QuerydsljOOQJEQUELactivejdbciciql等...

背景:我正在使用 Spring JDBC 模板,但这仍然需要以纯字符串格式编写查询。虽然我在编写直接查询时没有问题,但我担心直接依赖于数据库表名。我不想使用任何 ORM 框架,如 Hibernate 或 JPA/EclipseLink。我需要尽可能高的原始性能(IMO,它们适用于更多以 CRUD 为中心的应用程序)。我可以为这些 DSL 提供一点点开销(我相信,它主要是 StringBuilder/String 连接!)

我考虑过在某些 xml 中使用外部化的命名查询。但只是试图评估不同 Query DSL 库提供的价值。

编辑:更多关于我的要求: 我想知道在使用他们的 API 方法构建一个中等复杂的查询时它们之间的性能比较。我只需要使用这些查询 DSL 库中的任何一个生成查询字符串,并将其传递给 Spring JDBC 模板。所以,我想知道添加这个中间步骤是否会导致相当大的性能损失,我想使用命名查询或构建我自己的库,它只使用 StingBuilder 或类似方法

更新我对 jOOQ、iciql、QueryDSL 的体验:

尽管我在原来的帖子中没有提到这一点,但我也热衷于易用性和我需要在我的实体类中拥有的开销(比如是否需要任何额外的注释或实现)。

约克:

  • 需要将实体属性更改为库特定的方式
  • 可以返回 SQL 查询字符串

爱奇艺:

  • 实体可以在没有或很少更改的情况下进行映射(可以使用总共 3 种方式进行映射)
  • 但它仅限于选择查询(对于更新/删除/...需要再次更改实体)

查询DSL:

  • 将实体与表绑定的多种方法(除了库特定的方法,支持使用 JPA 注释)。但我们至少需要修改实体
  • 没有简单/直接的方法来获取查询字符串

(所有观察结果我对这些知之甚少;如果其中任何一个不正确,请更正)

综上所述,我坚持编写命名查询:(但正如 Lukas Eder 的回答似乎解释了我最初关注的帖子(性能),我接受了他的。

0 投票
1 回答
1280 浏览

jdbc - Jdbc 连接池 - 使用仅在运行时已知的多个模式

我正在研究执行以下操作的引擎:

  1. 从 DB 获取数据提供者信息(告诉我要连接哪些数据库和架构详细信息以获取我的数据)
  2. 使用该信息连接到数据库并获取我的数据,稍后我将使用这些数据构建一些 XML 内容。

处理和隔离数据库连接管理的标准设置是创建一个 DataSource bean(我使用 Spring 连接我的组件)并将其注入我的 ProviderConfigDao(加载连接配置)和 ContentDao(使用之前加载的连接详细信息加载数据) . 这将很好地将连接的处理与实际代码隔离开来,因此 DAO 类不需要知道如何以及何时创建/打开/关闭连接等。

不幸的是,此设置不起作用,因为当我创建连接时,我需要能够指定数据库模式。我从一开始就不知道所有不同的模式,所以我无法创建一组 DataSource 对象来覆盖所有这些模式,因此必须在运行时创建 DataSource 对象,并且它的创建对用户隐藏。

我能想到的唯一解决方案是:

  1. 让另一个类/接口 (DataSourceProvider) 具有一个方法:

    /li>
  2. 在 Spring 配置中添加一个 bean 为其提供一个自定义实现,该实现管理每个模式的 DataSource 对象的创建。
  3. 将该对象注入我的 DAO 类而不是 DataSource 对象。

这不是一个糟糕的解决方案,但我想知道某些开源软件包中是否已经支持类似的东西......我宁愿使用已经完成和测试的东西,然后重新发明轮子。

干杯,史蒂夫。

0 投票
3 回答
2878 浏览

java - 如何在 Swing 桌面应用程序中使用 Spring JDBC 中的 JDBCTemplate?

我在我的 Swing 桌面应用程序中使用了很多 JDBC 代码。JDBCTemplate现在我从 Spring 中读到了Spring in Action它,它看起来像是一个很好的使用 JDBC 的 API。

但是 Spring JDBC 似乎需要一些用于 bean 的 XML 配置文件。有没有什么方法可以在没有这些 XML 配置文件的情况下使用 JDBCTemplate(例如带有注释)?或者我如何在 Swing 桌面应用程序中使用这个 JdbcTemplate 来访问数据库?

0 投票
1 回答
1875 浏览

java - Spring Jdbc模板返回Int as Long?

我的 MySQL 表中有 3 列,2 列是 INT,1 列是 VARCHAR。

我收到类转换异常:java.lang.ClassCastException:java.lang.Long 无法转换为 java.lang.Integer。这是我的代码:

我的问题是为什么我必须将它转换为 Long?是不是因为 MySQL 允许的最大 INT 值和 java 允许的最大 int 值不一样?

0 投票
3 回答
7847 浏览

java - Spring jdbc模板:将sql语句保留在代码之外的最佳方法是什么

Spring JDBC 模板中似乎没有命名查询支持。命名查询是指在 java 代码中按名称引用 sql 语句并将实际语句保存在某个配置文件中的工具。

在没有开箱即用支持的情况下,我正在研究将 sql 语句保留在 java 代码之外的最佳方法。

以下是替代方案:

  1. 属性文件
  2. xml 属性文件
  3. spring 上下文 xml(依赖注入)

评论?

0 投票
2 回答
833 浏览

java - Spring框架将连接对象传递给遗留代码

我正在使用 Spring JDBC 3.0.6。我也有使用普通 JDBC 的遗留代码。遗留代码中有一些方法需要 java.sql.Connection 对象。我想从我的 Spring 代码中调用这个方法。如何传递 java.sql.Connection 对象?

如果我从数据源中获取连接对象,那么我需要管理此连接的返回/释放。我不能只获取事务中的连接对象的引用吗?

我正在使用基于注释的配置和基于 aop 的声明性事务。

0 投票
2 回答
434 浏览

java - 用于超过 1000 个 id 的 IN 查询的 spring-jdbc

我有一个这样的查询 -

IN 将获得超过1000. 所以我的查询在 Oracle 上失败了。

一种选择是我在临时表中插入 id 并更改上述查询以加入这个新表。

spring-jdbc 是否提供任何解决此问题的方法?有没有我可以遵循的模式来编写我的 DAO?