Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(三)

     前两章我为你们详细介绍了如何搭建Maven环境、Spring MVC的流程结构、Spring MVCStruts2的区别以及示例中的一些配置文件的分析。在这一章,我就对示例的层次结构进行说明,以及MyBatis的一些简单介绍。
     本文不会对MyBatis做详细说明,大象仍是假定阅读本文的朋友对MyBatis(ibatis)有最基本的了解,只有这样才能较好的理解本文的内容。关于MyBatis请查看它的官方文档及其它参考资料,本文不做详细讨论。

    1、工程结构图     web

     上面这是典型的Maven项目结构形式,使用本地仓库管理jar包的依赖,使用插件打包编译发布很是方便,让咱们从传统的开发方式中解放出来,你们都快来使用Maven构建项目吧!

    2、映射文件spring

     使用MyBatis进行持久化操做,须要设置一个映射文件,通常来讲,每张表对应一个实体对象和一个mapper映射文件。而MyBatis里面没有像Hibernate那样复杂的关联关系,因此,它的每一个实体类其实就是一个很普通的POJO类。而映射文件中,都是SQL语句,下面就是示例中RoleMapper.xml的代码片断。

    

     那么,MyBatis是如何将数据库字段与POJO对象进行映射的呢?这是在它的内部,会将到得的结果或结构集,与咱们定义的POJO对象属性进行映射,规则是,属性首字母小写,使用驼峰式命名方式,而字段则是单词与单词间,用下划线链接。好比:数据库有个USER_NAME字段,那么与它对应的属性就应该是userName。若是字段命名没有使用下划线,那么属性能够直接定义成该单词。好比,NAME字段,它的属性就是name

    3、基于namespace接口与公用dao的区别     MyBatis3.0开始,对mapper中的namespace属性新增了一个特性:能够指定具体的接口来做为持久化操做类,在接口中定义与映射文件中id属性值相同的方法,MyBatis会自动去绑定和执行对应的SQL语句。这种接口实现方式,须要为每一个Mapper建立一个接口,若是系统作大了,维护这些类会比较麻烦,大象我的倾向于基础服务式的Dao实现类,如例子中的MyBatisDao。     4、MyBatisDao     持久化操做基类,SqlSessionDaoSupportmybatis-spring插件中封装的,用于得到SQL Session链接,执行数据库操做,我定义了几个经常使用的方法。数据库

     关于mybatis-spring插件我简单介绍一下, Spring 3.x的发布并无对MyBatis这一优秀的SQL框架提供支持,虽然在它的问题列表中已经有这样的请求,但直到目前3.0.5版的发布,都还没将这个问题处理掉。不过这难不倒开源世界里广大的爱好者与贡献者,mybatis-spring就是在这样的状况下诞生了。它是由MyBatis社区爱好者完成的一个开源项目,用来进行Spring 3.0MyBatis 3.0的配置整合。该插件须要运行在JDK 5.0或更高版本。

         5、Servicemybatis

     ssm3这个示例中,你们有没有发现,已经没有为每一个entity定义一个dao,而是统一的调用MyBatisDao做为存储服务接口。另外与使用Hibernate的主要区别,就是不能直接传一个对象参数,还必须写上key值,它是namespace加上ID值。          6、entity     MyBatis的实体类就是一个简单的POJO对象,只是用来与表字段进行关联映射,请注意,我这里所说的映射不是像Hibernate那种绑定关系,只一种存放数据的对象而已。          7、测试
     上面的步骤完成后,接下来就须要测试下咱们的业务接口是否正常,编写一个测试类,为了达到目的,简便起见,大象是对RoleService进行测试,UserService同理相似。
     在写测试用例前,须要在POM文件中加入一个Srping测试依赖,这是大象在前面两章疏忽漏掉了,请你们谅解。
         而后编写测试类,运行测试,经过!

    

    到此,这一章的内容就讲完了,若是有对注解不理解的地方,请看下我以前的SSH2系列之三,至于MyBatis,它的内容太多了,若是不清楚还请先看下使用指南。 下一章我将会介绍web层,以及使用Spring MVC的注解来实现控制器功能。
相关文章
相关标签/搜索