相比hibernate来说,ibatis灵活性更好,下面小结之.
1 user.hbm.xml
<sqlMap namespace="Users">
<typeAlias alias="users" type="com.product.user.Users"/>
<select id="getUserByAccount" resultClass="users" parameterClass="java.lang.String">
SELECT
UserId,
UserName,
Account,
Password
FROM Users where Account=#account#
</select>
</sqlMap>
其中 <typeAlias alias="users" type="com.product.user.Users"/>是别名
com.product.user.Users就是普通的POJO了.
再来个复杂点的
<sqlMap namespace="SellNote">
<!-- 别名定义 -->
<typeAlias alias="sellNote" type="com.product.sellnote.SellNote"/>
<typeAlias alias="product" type="com.product.product.Product"/>
<resultMap class="sellNote" id="get-sellNote-result">
<result property="snId" column="SnId"/>
<result property="orderFormNo" column="OrderFormNo"/>
<result property="product" column="ProductId" select="getProductByprductId"/>
<result property="pnumber" column="Pnumber"/>
<result property="pactSum" column="PactSum"/>
<result property="signDate" column="SignDate"/>
</resultMap>
一个定单有多个product,所以 <result property="product" column="ProductId" select="getProductByprductId"/>
<!-- 根据产品ID获取产品记录-->
<select id="getProductByprductId" resultClass="product" parameterClass="java.lang.String">
SELECT
ProductId,
ProductName,
ProductNo
FROM Product where ProductId=#productId#
</select>
2 跟spring配置
<!-- 配置Ibatis中的SqlMapClient -->
<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation">
<value>/WEB-INF/sqlMapConfig.xml</value>
</property>
<property name="dataSource">
<ref local="dataSource" />
</property>
</bean>
3 web-inf中的sqlmapconfig.xml
<sqlMapConfig>
<sqlMap resource="com/product/product/Product.xml"/>
<sqlMap resource="com/product/sellnote/SellNote.xml"/>
<sqlMap resource="com/product/user/Users.hbm.xml"/>
</sqlMapConfig>