PetStore是sun公司為了演示自己的J2EE而編寫的一個寵物店的電子商務的例子。隨後它便成為其他一些
公司為了展示自己性能而競相模仿的例子。JPetStore就是ibatis所展示的例子,當然各個公司實現這個
例子的側重點都是自己的產品,ibatis主要是為了展示它的數據持久化的。通過JPetstore可以讓我們更
清楚的了解ibatis的用法和優點。
先看如何在windows下使用tomcat和mysql運行JPetStore.
第一步:配置JDK和MySQL
第二步:下載JPetStore
第三步:創建JPetStore資料庫
把iBATIS_JPetStore-4.0.5\ddl\mysql下jpetstore-mysql-schema.sql, jpetstore-mysql-dataload.sql,
jpetstore-mysql-create-user.sql三個檔案拷貝到MySQL的bin目錄下,到MySQL的命令提示符下分別運行這
三個檔案:
mysql -uroot –p < jpetstore-mysql-schema.sql
mysql -uroot –p < jpetstore-mysql-dataload.sql
mysql -uroot –p < jpetstore-mysql-create-user.sql
以上三個檔案分別是創建資料庫JPetStore,導入數據,分配許可權。如果你安裝了MySQL的管理工具,您也可以
在您按裝的管理工具下運行這三個檔案。
如果你安裝了MySQL-Front,可以直接點擊SQL編輯器,依次將上述檔案中的SQL語句拷貝,執行。
第四步:部屬JPetStore
把iBATIS_JPetStore-4.0.5\build\wars下的jpetstore.war複製到Tomcat的Webapps目錄下,接著運
行Tomcat(http://localhost:8080)。接著在看Webapps目錄下會出現jpetstore資料夾,找到該檔案
夾下WEB-INF\classes\properties目錄下的database.properties,把裡面的內容替換成如下:
####################################
# Database Connectivity Properties
####################################
driver=org.gjt.mm.mysql.Driver
url=jdbc:mysql://localhost:3306/jpetstore
username=jpetstore
password=yourkeyword
重啟Tomcat.(注意如果不成功,有可能是driver太老,可以換成com.mysql.jdbc.Driver試一下,當然前
提是mysql驅動包足夠新)。
下面開始看這個例子,因為它是ibatis給的,所以最主要的還是ibatis如何使用,和他的方便靈活。
在ibatis中要持久化數據首先要搞定一些配置檔案,JpetStore給出了一個很完整的例子。先是database.properties
在這裡面配置了資料庫的一些基本信息包括驅動,url,用戶名,密碼,很簡單也很清晰。直接使用這些信息的是
sql-map-config.xml引用database.properties如下
。sql-map-config.xml從database.properties主要等到
${driver},${url},${username},${password}等信息。sql-map-config.xml同時與另一些配置檔案聯繫上了,如
,這樣sql-map-config.xml
就完成了自己的任務,得到了資料庫的一些基本信息,同時與Account.xml等一些檔案建立了聯繫。
下面就可以看一下Account.xml了,在Account.xml中做了什麼呢?做了2件事
第一,指定了接口類, 。
同時在類的屬性和數據表的列之間建立了聯繫。
。。。。。
第二,寫出了業務邏輯中所用到的操作,對應的sql語句,如
update SIGNON set PASSWORD = #password# where USERNAME = #username#
update ACCOUNT set EMAIL = #email#, FIRSTNAME = #firstName#, LASTNAME = #lastName#,
STATUS = #status#, ADDR1 = #address1#, ADDR2 = #address2: varchar#, CITY = #city#,
STATE = #state#, ZIP = #zip#, COUNTRY = #country#,PHONE = #phone# where USERID = #username#
等,這樣到時用的話之間可以寫作:update("insertSignon", account);這句是在AccountDao.java的實現
類AccountSqlMapDao.java中。以上2點就是Account.xml的作用。
在上面的Account.xml作用中,提到了AccountSqlMapDao.java和AccountDao.java,他們怎么沒出現在
那個配置檔案中呢?別急,還有一個dao.xml。這個檔案聯繫了sql-map-config.xml
value="com/ibatis/jpetstore/persistence/sqlmapdao/sql/sql-map-config.xml"/>
也指定了dao的interface和implementation,
implementation="com.ibatis.jpetstore.persistence.sqlmapdao.AccountSqlMapDao"/>
這就是ibatis持久化所需要的所有配置檔案。