spring整合mybatis详解

在上篇螃蟹已经说明spring注解的最经典配置,接下来开始整合mybatis,这样整个项目就相对完整了。

         有关本实例的源码可以到 《 spring MVC注解实例及说明文档 》 下载。

        首先依旧是找到spring的主配置文件 applicationContext.xml ,然后进行如下配置:  

        

        这么做的目的有两个,一个是项目启动时会直接初始化qlSessionFactory对应的实体类,不需要在dao层中再继承其它相关类。
        第二个就是加载mybatis的总配置文件(mybatis-config.xml),其配置内容如下:


        

        这里面我们将sql语句和返回的结果集进行分开,原因是如果该模块的功能较多设计到的表较多,将所有内容都写到一个配置文件中难免显得臃肿,尤其是作为后期维护或者是其他人员接手开发时,将会造成很大的困扰。  

        然后再打开上图中的SysUserMapper.xml文件,配置内容如下:

       
 
        其中,黄色标注部分一个是该文件所对应的mapper类,也就是dao层,而且dao接口中的方法一定要和该文件中方法的id对应起来,否则在项目启动时初始化会报错。如果还是不清楚的话,可到《spring MVC注解模式的经典实现》一文中看下具体配置,是有图文详解的

         再一个就是resultMap采用的命名空间(下图标注部分)+id的形式,这样做的好处就是方便对应该模块下的所有resultMap文件,无论是日后查找还是作为 编程规范,都是个报错的选择,只要清晰即可。  

        最后我们再来看下resultMap.xml的配置

       

        至此,spring整合mybatis的配置工作就结束了,是不是觉得非常的简单,尤其是自己动手从头搭建到最后成功运行的过程,是不是很有成就感。如果有些地方不清楚的可以在文章下方留言,螃蟹会抽时间解答的,实在运行不起来的可以看看源码中的配置。

         对于mybatis文件中写sql语句还有两点螃蟹需要提一下:

        1、不要在sql最后加个“;”号,  

                很多写sql写习惯的开发者会在最后加个结束符,表示语句已经结束,而在mybatis中人家已经自己加上了,          再画蛇添足mybatis就会觉得你太小看它了不是?
        
        2、就是CDATA区的应用

               很多人不解为什么mysql中有关查询判断的为什么要加个CDATA区呢?我们看个图就大体知道了
       
         

              看清楚了吗?螃蟹只不过随便写了一个判断,就这么要给简单判断也没有什么复杂语法,怎么就报错了呢?
              我们先看看报的什么错:

              

              
               很明显,是我们的小于号被mybatis列为无效字符了!为什么?  
              

             如果在平常写sql语句的时候,sql控制器或工具都是把sql当作一个纯语句来实现,而mybtais则不然。它是一个功能强大的orm框架,封装了很多语法,目的是让我们使用方便,前提是得用对了。它考虑到为了sql中的关键词或者字符别和自己的解析器进行冲突,就用了 xml文件中常有的CDATA区来设置,只要是写道里面的,就会被当作纯sql来解析。所以,当我们冷不丁犯了什么错的时候先别急,看看是不是违反了mybatis的规则了。

本文出自:IT学习者
链接地址:http://www.itxxz.com

文章地址:http://www.itxxz.com/a/kuangjia/2014/0531/5.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值