중첩 된 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 에 DATABASE NAME 을 추가해야합니다 .이 경우 TEST입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다