ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Prashanth Sukumaran <prashanthsukuma...@yahoo.com>
Subject Re: I can't see clearly...
Date Fri, 12 Aug 2005 14:12:41 GMT
Hi,

How can you do this??  

The query you have defined will be created using a Prepared Statement.  Underlying code would
use
ps.setString(1, value);  But you want the table name to be dynamic.

In JDBC how can you create a Prepared Statement and replace a table name. No Way.

I think if you want to accomplish this in iBatis you can use $value$. That way it will directly
do
a String replace.  

Rgds

Prashanth Sukumaran.
 



--- TNO <tnodev@free.fr> wrote:

> Hello, I have a simple problem but we are friday...
> 
> This is a simple statement
> 
>   <select id="selectCount" parameterClass="string" resultClass="int">
>     <![CDATA[
>     SELECT count(*) FROM #value#
>     ]]>
>   </select>
> 
> but... I must be blind ! there is a problem !
> please help !!!
> 
> The log
> 
> DEBUG 15:59:16.812 {conn-100000} Connection  (ConnectionLogProxy.java:42)
> DEBUG 15:59:16.875 {pstm-100001} PreparedStatement:           SELECT 
> count(*) FROM ?          (PreparedStatementLogProxy.java:48)
> DEBUG 15:59:16.875 {pstm-100001} Parameters: [mandat]  
> (PreparedStatementLogProxy.java:49)
> DEBUG 15:59:16.875 {pstm-100001} Types: [java.lang.String]  
> (PreparedStatementLogProxy.java:50)
> 
> 
> The exception trace
> 
> org.springframework.jdbc.BadSqlGrammarException: Bad SQL grammar [] in 
> task 'SqlMapClient operation'; nested exception is 
> com.ibatis.common.jdbc.exception.NestedSQLException:  
> --- The error occurred in arc/db/dao/ibatis/config/AgregatSQL.xml. 
> --- The error occurred while applying a parameter map. 
> --- Check the selectCount-InlineParameterMap. 
> --- Check the statement (query failed). 
> --- Cause: org.postgresql.util.PSQLException: ERROR: syntax error at or 
> near "$1"
> com.ibatis.common.jdbc.exception.NestedSQLException:  
> --- The error occurred in arc/db/dao/ibatis/config/AgregatSQL.xml. 
> --- The error occurred while applying a parameter map. 
> --- Check the selectCount-InlineParameterMap. 
> --- Check the statement (query failed). 
> --- Cause: org.postgresql.util.PSQLException: ERROR: syntax error at or 
> near "$1"
> Caused by: org.postgresql.util.PSQLException: ERROR: syntax error at or 
> near "$1"
>     at 
>
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:181)
>     at 
>
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:100)
>     at 
>
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:561)
>     at 
>
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:536)
>     at 
> com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:97)
>     at 
>
org.springframework.orm.ibatis.SqlMapClientTemplate$1.doInSqlMapClient(SqlMapClientTemplate.java:224)
>     at 
> org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:181)
>     at 
>
org.springframework.orm.ibatis.SqlMapClientTemplate.queryForObject(SqlMapClientTemplate.java:222)
>     at arc.db.dao.ibatis.AgregatDAOiBatis.getCount(AgregatDAOiBatis.java:19)
>     at arc.db.dao.ibatis.TestAgregatDao.testCount(TestAgregatDao.java:40)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>     at java.lang.reflect.Method.invoke(Unknown Source)
>     at junit.framework.TestCase.runTest(TestCase.java:154)
>     at junit.framework.TestCase.runBare(TestCase.java:127)
>     at junit.framework.TestResult$1.protect(TestResult.java:106)
>     at junit.framework.TestResult.runProtected(TestResult.java:124)
>     at junit.framework.TestResult.run(TestResult.java:109)
>     at junit.framework.TestCase.run(TestCase.java:118)
>     at junit.framework.TestSuite.runTest(TestSuite.java:208)
>     at junit.framework.TestSuite.run(TestSuite.java:203)
>     at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
>     at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
>     at 
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
> Caused by: org.postgresql.util.PSQLException: ERROR: syntax error at or 
> near "$1"
>     at 
> org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1471)
>     at 
> org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1256)
>     at 
> org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:175)
>     at 
> org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:389)
>     at 
> org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:330)
>     at 
> org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:321)
>     at 
>
org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:168)
>     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>     at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>     at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>     at java.lang.reflect.Method.invoke(Unknown Source)
>     at 
>
com.ibatis.common.jdbc.logging.PreparedStatementLogProxy.invoke(PreparedStatementLogProxy.java:57)
>     at $Proxy1.execute(Unknown Source)
>     at 
> com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:180)
>     at 
>
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteQuery(GeneralStatement.java:201)
>     at 
>
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:169)
>     ... 24 more
> 
> 
> 
> 



		
____________________________________________________
Start your day with Yahoo! - make it your home page 
http://www.yahoo.com/r/hs 
 

Mime
View raw message