zoukankan      html  css  js  c++  java
  • spring整合mybatis详解

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


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

          如需转载,请注明原出处:http://itxxz.com/a/kuangjia/2014/0531/5.html

            首先依旧是找到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的规则了。

  • 相关阅读:
    商贸通帐套隐藏方法
    固定资产打开提示:上年度数据未结转!
    ZOJ 2432 Greatest Common Increasing Subsequence
    POJ 1080 Human Gene Functions
    POJ 1088 滑雪
    POJ 1141 Brackets Sequence
    POJ 1050 To the Max
    HDOJ 1029 Ignatius and the Princess IV
    POJ 2247 Humble Numbers
    HDOJ 1181 变形课
  • 原文地址:https://www.cnblogs.com/superli0426/p/3762133.html
Copyright © 2011-2022 走看看