您的位置:首页 > 其它

mybatis XML方式的基本用法

2018-01-13 16:54 295 查看
一、前言:

       MyBatis的真正强大之处在于它的映射语句,这也是它的魔力所在。由于它的映射语句异常强大,映射器的XML文件就显得相对简单,如果将其与具有相同功能的JDBC代码进行对比,就会发现使用这种方法节省了将近95%的代码量,mybatis就是针对SQL构建的,并且比普通的方法做的更好。

        mybatis3.0支持接口调用方式,mybatis使用Java的动态代理可以直接通过接口来调用相应的方法不需要提供接口的实现类。更不需要在实现类中使用SqlSession以通过命名空间间接调用。当有多个参数的时候,通过参数注解@Param设置参数的名字省去了手动构建Map参数的过程,尤其在Spring中使用的时候,可以配置为自动扫描所有的接口类,直接将接口注入到需要用到的地方。

二、XML规则:

      XML中的select标签的id属性值和定义的接口方法名是一样的。XML和接口的命名符合如何规则:

      1、当只使用XML而不使用接口的时候,namespace的值可以设置为任意不重复的名称

      2、标签的id属性值在任何时候都不能出现英文句号".",并且同一个命名空间下不能出现重复的id

      3、因为接口方法是可以重载的,所以接口中可以出现多个同名但参数不同的方法,但是XML中的id值不能重复,因而接口中的 所有同名方法都对应着XML中的同一个id的方法。

三、常用便签和对应的属性

    1、select标签

     <select>:查询映射语句使用的标签。

      id:命名空间中唯一的标识符,可以用来代表这条语句。将SQL语句封装到mappedStatement对象中,所以id称为statement的id。

      parpmeterType:指定输入参数的类型,可以是简单类型,也可以是pojo类型

     #{}:预编译参数的一种方式,表示一个占位符号

     ${}:表示一个拼接符号,会引起SQL注入,不建议使用

      resultType:在映射文件中通过resultType指定输出结果的类型

      resultMap:用于设置返回值的类型和映射关系

     2、resultMap标签

      用于配置Java对象的属性和查询结果列的对应关系,通过resultMap中配置的column和property可以将查询列的值映射到type对象的属性上。

      id:必填,并且唯一。在select标签中,resultMap指定的值即为此处Id所设置的值。

      type:必填,用于配置查询列所映射到的Java对象类型。

      extends:选填,可以配置当前的resultMap基础自其它的resultMap,属性值为基础resultMap的id。

      以上是resultMap的属性,resultMap包含的所有标签如下:

      id:一个id结果,标记结果为id(唯一值),可以帮助提高整体性能。

      result:注入到Java对象属性的普通结果。

      association:一个复杂的类型关联,许多结果将包成这种类型。

      collection:复杂类型的集合

      接着来看一下id和result标签包含的属性

      column:从数据库中得到的列名,或者是列的别名。

      property:映射到列结果的属性

      javaType:一个Java类的完全限定名,或一个类型别名。

      jdbcType:列对应的数据库类型。

三、mybatis 注解

      MyBatis注解方式就是将SQL语句直接写在接口上。这种方式的优点是,对于需求比较简单的系统,效率更高。缺点是,当SQL有变化时都需要重新编译代码,一般情况下不建议使用注解方式。

四、mybatis和Hibernate

      Hibernate是一个标准的ORM框架(对象关系映射)。入门门槛较高,不需要程序写sql,sql语句自动生成。对sql语句进行优化,修改比较困难。

      mybatis:专注是sql本身,需要程序员自己编写SQL语句,SQL修改,优化比较方便。mybatis是一个不完全的ORM框架,虽然程序员自己写SQL,mybatis也可以实现映射(输入映射输出映射

      Hibernate应用场景:

      适用于需求变化不多的中小型项目,比如后台管理系统,ERP、ORM、OA(这些东西都是成型的东西,变化少)

      mybatis应用场景:

       适用于需求变化较多的项目,比如互联网项目等。

企业进行技术选型,以低成本,高回报作为技术选型的原则。根据项目组的技术力量进行选择。

            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: