我與DBreport介體輸出語法錯誤問題,但我看不到任何錯誤的SQL語句WSO2 ESB序列數據庫更新
<sequence xmlns="http://ws.apache.org/ns/synapse" name="_dbcount">
<dblookup>
<connection>
<pool>
<password>1234</password>
<user>root</user>
<url>jdbc:mysql://localhost:3306/new_db</url>
<driver>com.mysql.jdbc.Driver</driver>
</pool>
</connection>
<statement>
<sql>
<![CDATA[ select * from consume where username= ? and id_api+ ?]]></sql>
<parameter value="riccardo" type="VARCHAR" />
<parameter value="1" type="INTEGER" />
<result name="result_use" column="use" />
<result name="result_user" column="username" />
</statement>
</dblookup>
<dbreport>
<connection>
<pool>
<password>1234</password>
<user>root</user>
<url>jdbc:mysql://localhost:3306/new_db</url>
<driver>com.mysql.jdbc.Driver</driver>
<property name="autocommit" value="false" />
</pool>
</connection>
<statement>
<sql>
<![CDATA[UPDATE consume SET use=21 WHERE username='riccardo' AND id_api='1']]></sql>
</statement>
</dbreport>
<log level="custom">
<property xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd" name="result for client" expression="get-property('result_user')" />
<property xmlns:ns="http://org.apache.synapse/xsd" xmlns:ns3="http://org.apache.synapse/xsd" name="result for use" expression="get-property('result_use')" />
</log>
</sequence>
第一DB查找工作正常,但在在DBreport第二個SQL語句不能更新值:
ERROR - DBReportMediator Error execuring insert statem
ent : UPDATE consume SET use='21' WHERE username='riccardo' AND id_api='1' again
st DataSource : jdbc:mysql://localhost:3306/new_db
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in
your SQL syntax; check the manual that corresponds to your MySQL server version
for the right syntax to use near 'use='21' WHERE username='riccardo' AND id_api=
'1'' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)...
我的表如下所示:
消耗(INT ID,VARCHAR用戶名,INT id_api,INT使用) 用戶(INT ID,VARCHAR用戶名,VARCHAR密碼)
千恩萬謝
編輯我認爲有與DBREPORT和DBLOOKUP介質上的MySQL數據庫寫入時的主要問題,讀書是好的,但更新和插入的不愉快... 告訴我,如果我錯了
would not use = '21'? – Ratha
你知道我如何限制在API管理器中使用特定的API?而不是限制層次,但像限制用戶Bob將10次調用「API發送文本」並停止。 – nuvio
我試圖解決序列和代理在「API SND TEXT」之前調用,但它變得更糟了,這些調解器不能真正更新或插入MySql數據庫中的任何東西,我認爲這是一個主要的錯誤。最好的辦法是直接控制API MANAGER中的API使用,但不知道如何...... – nuvio