gpt4 book ai didi

java - 使用 Spring JDBC 执行嵌套 select 语句

转载 作者:行者123 更新时间:2023-11-29 23:20:47 24 4
gpt4 key购买 nike

我在执行嵌套 SELECT 语句时遇到问题。这是我的 SQL:

SELECT count(*) FROM posts AS p WHERE p.id IN (SELECT u.postId FROM users AS u) ;

我正在使用 MySQL,当我使用 MySQL Workbench 尝试时,这是有效的但是,当我在使用 Spring JDBC 的应用程序中尝试此操作时,它会抛出“org.springframework.jdbc.UncategorizedSQLException”。

以下是我在应用程序中使用它的方式:

getJdbcTemplate().queryForObject(SQL, Integer.class);

我已经尝试过了:

getJdbcTemplate().query(SQL, new RowCountCallbackHandler());

两种方法都不起作用,并且出现错误。

是否有一些配置选项或其他东西可以让我执行这样的操作嵌套 SELECT 语句 ?

编辑

错误跟踪是:

[3D000]; error code [1046]; No database selected; nested exception is java.sql.SQLException: No data
base selected
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(Abstrac
tFallbackSQLExceptionTranslator.java:84)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(Abstrac
tFallbackSQLExceptionTranslator.java:81)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(Abstrac
tFallbackSQLExceptionTranslator.java:81)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:411)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:466)
at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:476)
at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:486)
at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:492)

最佳答案

您没有正确配置数据源:

示例:

   <bean id="dataSource" 
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/TEST"/>
<property name="username" value="root"/>
<property name="password" value="password"/>
</bean>

您需要将数据库名称添加到url,在本例中为TEST

关于java - 使用 Spring JDBC 执行嵌套 select 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27325959/

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