读书人

MyBatis3 User Guide 第二一部分

发布时间: 2012-10-13 11:38:17 作者: rapoo

MyBatis3 User Guide 第二部分

声明:文章内容只作为学习和交流使用,不得用于商业转载,如需使用,请通过站内短信与本人联系,获得许可。

?

探索SQL映射 (Exploring Mapped SQL Statements)

?????? 此刻,你可能很想知道SqlSession或者映射类究竟执行了些什么操作。然而SQL映射(Mapped SQL Statements)是一个很大的话题,如果展开来谈,会占用很大篇幅,但为了能让你对所执行的内容有个整体的认识,下面给出几个例子。

????? 上面展示的任何一个例子,都可以通过XML或注解二者中的任何一种语法来定义。让我们先来看下XML方式的定义。MyBatis提供的全部特性都可以通过基于XML的映射来实现,这也正是这些年来MyBatis如此受欢迎的原因。如果你之前使用过MyBatis,它的概念对你来说并不陌生,但在XML映射文件上做了大量改进,以便以后的使用上更加清晰。这个例子是一个基于XML的映射,可以适用于上面SqlSession的调用过程。

????? 对这个简单的例子来说,看起来好像有点杀鸡用牛刀了,但实际上它非常轻巧。在一个XML映射文件中,你可以定义任意多的映射语句,可以对得起你定义一个XML头和DOCTYPE 声明付出的辛劳,呵呵。该文件的剩余部分几乎不用过多的解释就可以看明白。给这个映射起了个名字“selectBlog”,而命名空间“org.mybatis.example.BlogMapper”则允许你用全限定的名字来调用它“org.mybatis.example.BlogMapper.selectBlog”。下面看到的这个例子,就和我们上面做的一样:

package org.mybatis.example; public interface BlogMapper {   @Select("SELECT * FROM blog WHERE id = #{id}")   Blog selectBlog(int id); }

????????? 对于简单的Sql来说,用注解要清晰的多,然而,对于复杂的语句,注解就会显得既混乱,又不灵活。所以如果你想做一些复杂的事,你最好还是用XML来做映射。

???????? 使用哪种方式取决于你和你的项目组认为哪种更适合于你们,以及用一种统一的方式来定义语句对你们来说有多么重要。也就是说你们没有必要死守一种方式,你们可以非常简单的从注解映射的方式迁移到XML映射的方式,反之亦然。

读书人网 >软件架构设计

热点推荐