2
我剛剛在嘗試修改MySQL數據庫時遇到了Groovy中令人困惑的問題。這似乎是相同的代碼拋出一個異常,除非我的GroovyString
明確轉換爲java.lang.String
:您如何知道GroovyStrings何時不像字符串一樣對待?
import groovy.sql.Sql
def sql = Sql.newInstance('jdbc:mysql://localhost/test?useUnicode=yes&characterEncoding=UTF-8', 'user', 'pass', 'com.mysql.jdbc.Driver')
def tableName = 'my_table'
sql.execute "truncate $tableName"
拋出:
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 ''my_table'' at line 1
而下面的作品沒有問題:
sql.execute "truncate $tableName".toString()
這令人驚訝。我是否應該預料到這個問題,如果是這樣的話,那麼GroovyString
和String
實例可能會被區別對待?
+1我雖然有同樣的問題只需使用'asc'和'desc'就可以解決問題。它應該被標記爲可接受的答案。而且它讓我們瘋狂,因爲將字符串打印到控制檯顯示出完全有效的SQL字符串! – msanjay 2014-01-28 14:42:16