一個JTextPane寫SQL語句的問題

mouqj發表於2007-09-01
在JTextArea或者JTextPanel中寫下如下SQL語句

--sekect

select * from users

則執行類接受到SQL,執行結果:報錯“缺少法定引數”。

百思不得其解,所以提出這個問題

折衷解決

寫了轉換方法,該方法取消" "," "取代之,取消-註釋的語句。

public static String getFormatedSqlStr(String sqlStr){
int endPos,notePos;

while((endPos=sqlStr.indexOf(" "))>=0){ //匹配每一行
if ((notePos = sqlStr.indexOf("--")) >= 0 && endPos > notePos ){ //endPos > notePos防止出現問題問題,上一行的" ",下一行的--,則出現問題
String tmpStr =sqlStr.substring(0,notePos)+" ";
String tmpStr2 =sqlStr.substring(endPos+1)+" ";
sqlStr = tmpStr+tmpStr2 ;
}
else
sqlStr = sqlStr.substring(0,endPos)+" "+sqlStr.substring(endPos+1);
}

if((notePos=sqlStr.indexOf("--")) >=0) //最後一行有註釋
sqlStr = sqlStr.substring(0,notePos);

return sqlStr;
}

測試

/////////////////////////////

sql = "" +
"--selecet " +
"select * from arti--selecle " +
"--asdf " +
"where article_--selectid = 4 " +
"adf--select";
System.out.println(getFormatedSqlStr(sql));

/////////////////////////////

歸根結底,究竟什麼問題導致了這個錯誤?

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11049438/viewspace-967515/,如需轉載,請註明出處,否則將追究法律責任。

相關文章