appfuse下使用ibatis的一般步驟和若干問題:
1:在生成的項目的extras/ibatis下運行ant install
刷新項目,出現兩個錯誤:
Project ngucs is missing required library: 'lib/ibatis-2.1.7/jta.jar'
The project cannot be built until build path errors are resolved
兩種方法解決可以這個問題:
(1)打開.classpath文件,將下面這一行刪除(因為在hibernate的配置中已經引用了jta.jar)
<classpathentry kind="lib" path="lib/ibatis-2.1.7/jta.jar"/>
(2)將lib/hibernate-3.1.3/lib/jta.jar拷貝到lib/ibatis-2.1.7/,刷新項目。
2:如果不使用hibernate相關的操作,那么將和hibernate相關的文件(包括配置文件)和包刪除,以防發生混淆
3:修改在生成的項目extras/appgen文件的build.xml
將
<target name="merge-config" depends="merge-tests,merge-menu,merge-hibernate,merge-ibatis">
中的“merge-hibernate,”去掉,這樣在appgen下運行ant install-detailed的時候就不會生成hibernate相關的文件了!
4:生成文件不一定都能通過編譯,原因有很多種,常見的原因有:
(1)數據表設計時對主鍵的類型的錯誤設計,通常是太短了,建議主鍵都使用bigserial類型,如果使用serial,在生成的文件中多處會出現對int類型一些操作!使用bigserial對應生成的類型是Integer這樣就不會有錯了!--對應這種錯誤,如果不能修改數據的設計的話就只好修改代碼咯!快捷的方法是將model中主鍵對應的成員變量的類型改成Integer,在其他地方(xml,dao,servic,action)對這個成員變量的引用(一般通過取值函數)也做相應的類型修改就可以了。
5:修改完和主鍵相關的地方后,發現還有幾個和form相關的錯誤,這是因為相應的form還沒有生成,回到項目的根目錄,使用ant deploy命令就會生成了.
6:關于insert中的selectKey,pgsql中應該是這樣放到insert sql語句后面,使用的函數應該是currval('tablename_id_seq')
7:可以在appgen中修改相應的模板(xdt文件--一般在生成的項目extras/appgen/src中),使得appgen生成的代碼更接近自己的需要的代碼,這樣就可以減少生成代碼后的修改工作。
Let life be beautiful like summer flowers and death like autumn leaves.