一般常用都是用 PreparedStatement 來處理 SQL...
不過如果要 Call procedure 或 function的話,就要用其他的寫法~
我這邊是用 CallableStatement 來處理
另外,看了一下網路資源,似乎不同家的DB,下法也不一樣~總之這邊用oracle的~
Connection conn = getDataSource().getConnection();
CallableStatement cs = null;
String callsql = "{? = call FN_XXXXX(?,?) }";
cs = conn.prepareCall(callsql);
cs.registerOutParameter(1, java.sql.Types.VARCHAR);
cs.setString(2, "AAA");
cs.setString(3, "BBB");
cs.execute();
re = cstamt.getString(1);
總之就是output取值,要用 registerOutParameter 來放,執行後再取值出來~
在oracle裡面,似乎將這些東西分得很多類 function/package/procedure....
但是雖然我覺得都是差不多的東西阿一u一a...好啦~有的是整包,有的是單一功能~等等~
java來 call,寫法都差不多,會差在 語法怎麼下的差別就是~
(但是最難的還是去擠出那個DB Function的語法,sql語法很難debug阿阿阿阿阿~)
沒有留言:
張貼留言