JPetStore5.0的示例 这样的写法有什么好处?SQL语句执行的几遍? 本人新手望各位大侠详细解答 小弟谢谢了
<typeAlias alias="account" type="com.ibatis.jpetstore.domain.Account"/>
<select id="getAccountByUsername" resultClass="account" parameterClass="string">
SELECT
SIGNON.USERNAME,
ACCOUNT.EMAIL,
ACCOUNT.FIRSTNAME,
ACCOUNT.LASTNAME,
ACCOUNT.STATUS,
ACCOUNT.ADDR1 AS address1,
ACCOUNT.ADDR2 AS address2,
ACCOUNT.CITY,
ACCOUNT.STATE,
ACCOUNT.ZIP,
ACCOUNT.COUNTRY,
ACCOUNT.PHONE,
PROFILE.LANGPREF AS languagePreference,
PROFILE.FAVCATEGORY AS favouriteCategoryId,
PROFILE.MYLISTOPT AS listOption,
PROFILE.BANNEROPT AS bannerOption,
BANNERDATA.BANNERNAME
FROM ACCOUNT, PROFILE, SIGNON, BANNERDATA
WHERE ACCOUNT.USERID = #username#
AND SIGNON.USERNAME = ACCOUNT.USERID
AND PROFILE.USERID = ACCOUNT.USERID
AND PROFILE.FAVCATEGORY = BANNERDATA.FAVCATEGORY
</select>
不知道你具体哪里不明白?
难道是这个多表关联的sql语句查询不明白?
语句只被执行一次,然后由数据库将语句解析处理。
Ibatis对于应用的修改,调试,扩充和维护将会变得容易自然。修改时,我们主要修改的是代表模型的实体对象,xml配置文件中的sql,和/或配置文件的ResultMap(很多时候是不需要的)。同时,sql和代码分离,我们不用在代码的StringBuffer的append方法之间寻找需要修改的sql。配置文件中的sql便利了我们的调试和对sql的评审及以后的sql 重用。
至于执行几遍 你可以自己看dubug中 prepareStatement 执行了几次