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

7 篇文章 0 订阅
6 篇文章 0 订阅
前两章我为大家详细介绍了如何搭建 Maven 环境、 Spring MVC 的流程结构、 Spring MVC Struts2 的区别以及示例中的一些配置文件的分析。在这一章,我就对示例的层次结构进行说明,以及 MyBatis 的一些简单介绍。
     本文不会对 MyBatis 作详细说明,大象还是假定阅读本文的朋友对 MyBatis(ibatis) 有最基本的了解,只有这样才能较好的理解本文的内容。关于 MyBatis 请查看它的官方文档及其它参考资料,本文不作详细讨论。
    一、 工程结构图
    
     上面这是典型的 Maven 项目结构形式,使用本地仓库管理 jar 包的依赖,使用插件打包编译发布非常方便,让我们从传统的开发方式中解放出来,大家都快来使用 Maven 构建项目吧!
    二、 映射文件
     使用 MyBatis 进行持久化操作,需要设置一个映射文件,一般来说,每张表对应一个实体对象和一个 mapper 映射文件。而 MyBatis 里面没有像 Hibernate 那样复杂的关联关系,所以,它的每个实体类其实就是一个很普通的 POJO 类。而映射文件中,都是 SQL 语句,下面就是示例中 RoleMapper.xml 的代码片段。
    
     那么, MyBatis 是如何将数据库字段与 POJO 对象进行映射的呢?这是在它的内部,会将到得的结果或结构集,与我们定义的 POJO 对象属性进行映射,规则是,属性首字母小写,使用驼峰式命名方式,而字段则是单词与单词间,用下划线连接。比如:数据库有个 USER_NAME 字段,那么与它对应的属性就应该是 userName 。如果字段命名没有使用下划线,那么属性可以直接定义成该单词。比如, NAME 字段,它的属性就是 name
    三、 基于 namespace接口与公用dao的区别
     MyBatis3.0 开始,对 mapper 中的 namespace 属性新增了一个特性:可以指定具体的接口来作为持久化操作类,在接口中定义与映射文件中 id 属性值相同的方法, MyBatis 会自动去绑定和执行对应的 SQL 语句。这种接口实现方式,需要为每个 Mapper 创建一个接口,如果系统做大了,维护这些类会比较麻烦,大象个人倾向于基础服务式的 Dao 实现类,如例子中的 MyBatisDao
    四、 MyBatisDao
     持久化操作基类, SqlSessionDaoSupport mybatis-spring 插件中封装的,用于获得 SQL Session 连接,执行数据库操作,我定义了几个常用的方法。
     关于 mybatis-spring 插件我简单介绍一下,  Spring 3.x 的发布并没有对 MyBatis 这一优秀的 SQL 框架提供支持,虽然在它的问题列表中已经有这样的请求,但直到目前 3.0.5 版的发布,都还没将这个问题处理掉。不过这难不倒开源世界里广大的爱好者与贡献者, mybatis-spring 就是在这样的情况下诞生了。它是由 MyBatis 社区爱好者完成的一个开源项目,用来进行 Spring 3.0 MyBatis 3.0 的配置整合。该插件需要运行在 JDK 5.0 或更高版本。
    
    五、
Service
     ssm3 这个示例中,大家有没有发现,已经没有为每个 entity 定义一个 dao ,而是统一的调用 MyBatisDao 作为存储服务接口。 另外与使用 Hibernate 的主要区别,就是不能直接传一个对象参数,还必须写上 key 值,它是 namespace 加上 ID 值。
    
    六、 entity
     MyBatis 的实体类就是一个简单的 POJO 对象,只是用来与表字段进行关联映射,请注意,我这里所说的映射不是像 Hibernate 那种绑定关系,只一种存放数据的对象而已。
    
    七、 测试
     上面的步骤完成后,接下来就需要测试下我们的业务接口是否正常,编写一个测试类,为了达到目的,简便起见,大象是对 RoleService 进行测试, UserService 同理类似。
     在写测试用例前,需要在 POM 文件中加入一个 Srping 测试依赖,这是大象在前面两章疏忽漏掉了,请大家谅解。
    
    然后编写测试类,运行测试,通过!
    
    到此,这一章的内容就讲完了,如果有对注解不理解的地方,请看下我之前的 SSH2 系列之三,至于 MyBatis ,它的内容太多了,如果不清楚还请先看下使用指南。 下一章我将会介绍web,以及使用 Spring MVC 的注解来实现控制器功能。
    本文为菠萝大象原创,如要转载请注明出处。 http://www.blogjava.net/bolo/archive/2011/08/04/352845.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值