设为首页 加入收藏

TOP

深入浅出MyBatis-Configuration(一)
2015-07-24 10:51:57 来源: 作者: 【 】 浏览:1
Tags:深入浅出 MyBatis-Configuration

Configuration是干嘛的

Configuration就像是Mybatis的总管,Mybatis的所有配置信息都存放在这里,此外,它还提供了设置这些配置信息的方法。Configuration可以从配置文件里获取属性值,也可以通过程序直接设置。Configuration里可供配置的属性有:

1. properties属性

1) 配置示例

[html] view plaincopy
  1. 2) 用途

    properties里配置的属性将被存放在Configuration的variables变量里,供Mybatis使用。此外在配置文件中,也可以使用这些属性,用来对配置项实现动态配置。比如:

    [html] view plaincopy
    1. 3) 注意事项

      resource里也可指定属性值,并且resource里属性值的优先级高于property子节点里配置的值,也就是说resource的同名属性将会覆盖于property子节点里的值。

      2. settings设置

      1) 配置示例

      [html] view plaincopy
      1. 2) 用途

        setting节点里配置的值会直接改写Configuration对应的变量值,这些变量描述的是Mybatis的全局运行方式,如果对这些属性的含义不熟悉的话建议不要配置,使用默认值即可。下面这个表格描述了各个配置项的含义和默认值:

        设置参数

        描述

        有效值

        默认值

        cacheEnabled

        这个配置使全局的映射器启用或禁用缓存。

        true | false

        true

        lazyLoadingEnabled

        全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载。

        true | false

        true

        aggressiveLazyLoading

        当启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。否则,每种属性将会按需要加载。

        true | false

        true

        multipleResultSetsEnabled

        允许或不允许多种结果集从一个单独的语句中返回(需要适合的驱动)。

        true | false

        true

        useColumnLabel

        使用列标签代替列名。不同的驱动在这方便表现不同。参考驱动文档或充分测试两种方法来决定所使用的驱动。

        true | false

        true

        useGeneratedKeys

        允许JDBC支持生成的键。需要适合的驱动。如果设置为true则这个设置强制生成的键被使用,尽管一些驱动拒绝兼容但仍然有效(比如Derby)。

        true | false

        false

        autoMappingBehavior

        指定MyBatis如何自动映射列到字段/属性。PARTIAL只会自动映射简单,没有嵌套的结果。FULL会自动映射任意复杂的结果(嵌套的或其他情况)。

        NONE,

        PARTIAL,

        FULL

        PARTIAL

        ?

        3) 注意事项

        谨慎修改这些配置值。

        3. typeAliases类型命名

        1) 配置示例

        [html] view plaincopy
        1. 2) 用途

          别名是为Java类型命名一个短的名字。它只用在XML配置文件里,用来减少类完全限定名的多余部分。例如在配置文件里需要使用domain.blog.Author的地方可以简单的使用Author替换。

          3) 注意事项

          Mybatis里有一些默认的别名,不要覆盖这些别名:

          别名

          映射的类型

          _byte

          byte

          _long

          long

          _short

          short

          _int

          int

          _integer

          int

          _double

          double

          _float

          float

          _boolean

          boolean

          string

          String

          byte

          Byte

          long

          Long

          short

          Short

          int

          Integer

          integer

          Integer

          double

          Double

          float

          Float

          boolean

          Boolean

          date

          Date

          decimal

          BigDecimal

          bigdecimal

          BigDecimal

          object

          Object

          map

          Map

          hashmap

          HashMap

          list

          List

          arraylist

          ArrayList

          collection

          Collection

          iterator

          Iterator

          ?

          4. typeHandlers类型处理器

          1) 配置示例

          [html] view plaincopy
          1. 2) 用途

            无论是MyBatis在预处理语句中设置一个参数,还是从结果集中取出一个值时,类型处理器被用来将获取的值以合适的方式转换成Java类型。

            3) 注意事项

            Mybatis已经有了若干个类型处理器了,编写自己的类型处理器时勿重新发明轮子。

            类型处理器

            Java类型?

            JDBC类型?

            BooleanTypeHandler

            Boolean,boolean

            任何兼容的布尔值

            ByteTypeHandler

            Byte,byte

            任何兼容的数字或字节类型

            ShortTypeHandler

            Short,short

            任何兼容的数字或短整型

            IntegerTypeHandler

            Integer,int

            任何兼容的数字和整型

            LongTypeHandler

            Long,long

            任何兼容的数字或长整型

            FloatTypeHandler

            Float,float

            任何兼容的数字或单精度浮点型

            DoubleTypeHandler

            Double,double

            任何兼容的数字或双精度浮点型

            BigDecimalTypeHandler

            BigDecimal

            任何兼容的数字或十进制小数类型

            StringTypeHandler

            String

            CHAR和VARCHAR类型?

            ClobTypeHandler

            String

            CLOB和LONGVARCHAR类型?

            NStringTypeHandler

            String

            NVARCHAR和NCHAR类型?

            NClobTypeHandler

            String

            NCLOB类型?

            ByteArrayTypeHandler

            byte[]

            任何兼容的字节流类型

            BlobTypeHandler

            byte[]

            BLOB和LONGVARBINARY类型

            DateTypeHandler

            Date(java.util)?

            TIMESTAMP类型?

            DateOnlyTypeHandler

            Date(java.util)?

            DATE类型?

            TimeOnlyTypeHandler

            Date(java.util)?

            TIME类型?

            SqlTimestampTypeHandler

            Timestamp(java.sql)

            TIMESTAMP类型?

            SqlDateTypeHandler

            Date(java.sql)?

            DATE类型?

            SqlTimeTypeHandler

            Time(java.sql)?

            TIME类型?

            ObjectTypeHandler

            Any

            其他或未指定类型

            EnumTypeHandler

            Enumeration类型

            VAR

            首页 上一页 1 2 下一页 尾页 1/2/2
            】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
            分享到: 
            上一篇x$kccle视图深入剖析 下一篇【翻译自mos文章】v$undostat视图..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·PostgreSQL 索引 - (2025-12-25 22:20:43)
·MySQL Node.js 连接 (2025-12-25 22:20:41)
·SQL 撤销索引、表以 (2025-12-25 22:20:38)
·Linux系统简介 (2025-12-25 21:55:25)
·Linux安装MySQL过程 (2025-12-25 21:55:22)