iBatis 3最佳实践

这两天把iBatis 3 beta 5 down下来鼓捣了一下,总结一下自己觉得最好的用法,有玩过的朋友欢迎一起来交流。


iBatis 3即可以在XML里写SQL,还支持用Annotation写,不过官方文档也不推荐用Annotation,java的Annotation弱了一点,写写简单的SQL还可以,如果SQL比较复杂,就麻烦了,文档里倒是提到C#的Attribute比较强,iBatis.net用户比较有福了,不过即使如此,我还是倾向于SQL写XML里比较好。


我觉得i3最激动人心的一点是Mapper Interface,先来一个SQL Map吧:

<mapper namespace="com.je.data.BookMapper">
<select id="getBookByISBN" parameterType="String" resultType="com.je.domain.Book">
select * from book where ISBN = #{ISBN}
</select>

<insert id="newBook" parameterType="com.je.domain.Book" flushCache="true" />
</mapper>


然后传统的做法就是:

Book book = (Book)session.selectOne("com.je.data.BookMapper.getBookByISBN", "123456789");
……


现在还可以这样做:
1、先根据SQL Map写一个Mapper Interface:

package com.je.data;
public interface BookMapper {
Book getBookByISBN(String ISBN);
newBook(Book book);
}

方法名字要跟SQL Statement的id一致,参数按顺序来就行,注意,现在这个Interface还是得自己写的

2、然后就可以这样来用:

BookMapper mapper = session.getMapper(BookMapper.class);
Book book = mapper.getBookByISBN("324567189");

……

mapper.newBook(book);


:arrow: XML写SQL,然后用Mapper Interface写程序,我认为这是最好的用法了,现在就期待有人能写个SQL Map >>> Mapper Interface的工具了 :D
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值