MyBatis XML 映射配置文件

/ 0评 / 0

    在上次的Mybatis使用当中有两个.xml文件的使用,一个是mybatis的配置文件,另一个则是Mapper接口的映射器实例。就此详细和更进一步地对Mybatis的配置文件进行Py。MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置(settings)和属性(properties)信息。文档的顶层结构如下:

   configuration 配置

  1. properties 属性
  2. settings 设置
  3. typeAliases 类型别名
  4. typeHandlers 类型处理器
  5. objectFactory 对象工厂
  6. plugins 插件
  7. environments 环境
    1. environment 环境变量
      1. transactionManager 事务管理器
      2. dataSource 数据源
  8. databaseIdProvider 数据库厂商标识
  9. mappers 映射器

Properties属性

    属性配置元素Properties可以将配置值写入xml当中(像上次直接写到对应变量后其也很简单,但是当config.xml达到一定规模就有点恐怖了。)当然也可以写到properties文件当中,使用属性文件的key作为占位符,在DataSource的property子元素value属性中可以使用${key}表达式来取值。现将config.xml改为以下:

Setting设置

    即全局元素的参数设置,可以覆盖Mybatis默认的一些全局参数设置-=:

    当然详细的设置可不是这么点。更多详细请戳Mybatis的官方文档,会有更加详细的介绍。

typeAlias:类型别名

    当我使用例如上次的那样来写配置文件的时候,我返回的一些值为对象,所以我的返回格式便是包名+类名。其长度大且复杂,所以typeAlias可以让你拥有一次重新取名字的机会(美滋滋)。譬如:

typeHandlers元素: 类型处理器

    其实在处理数据的时候大多都是经过TypeHandler的类的处理的,当然在你没有定义的时候则是自行处理,所以当你出现自定义的类亦或者数据类型时默认的家伙可就不认识你的类型了,所以在这个时候往往通过继承BaseTypeHandler<T>。所以就先定义一个类类型的:

    在创建好此类之后将Student类下也添加Adress类的参数,完成之后写TypeHandlers实现TypeHandler接口。

在config.xml  文件中填入配置信息:

对学生类稍作修改便可以发现这个的强势。

environment

    MyBatis支持配置多个dataSource环境,可以将应用部署到不同的环境上,如DEV(开发环境),TEST(测试换将),QA(质量评估环境),UAT(用户验收环境),PRODUCTION(生产环境),可以通过将默认environments值设置成想要的environment的id值。有时候,我们可能需要在相同的应用下使用多个数据库,比如我们可能有SHOPPING-CART数据库来存储所有的订单明细;使用REPORTS数据库存储订单明细的合计,用作报告。(也就是如果系统在运行期间如果有切换数据库环境的需求,mybatis中也可以很轻松的实现).
    1.environments中的default属性,标明在缺省的情况下,我们将启用那个数据源的配置
    2.environment:environment用来配置一个数据源
        2.1 id属性:定义数据源的标识,以方便mybatis在上下文中使用
        2.2 transactionManager 标签:事务管理器
        2.2.1 type:MyBatis支持的事务管理类型
            mybatis支持的事务管理类型有:JDBC 、 MANAGED
            JDBC事务管理器的使用,是在【jdbc程序】负责管理数据库连接的生命周期(提交、回退等等)的时候。如果将TransactionManager 属性设置成JDBC,MyBatis内部将使用JdbcTransactionFactory类创建TransactionManager。在独立编码中常用。 MANAGED事务管理器的使用,是在【应用服务器】负责管理数据库连接生命周期的时候。如果将TransactionManager属性设置成MANAGED时,MyBatis内部使用ManagedTransactionFactory 类创建事务管理器TransactionManager。例如,当一个Java EE的应用程序部署在类似JBoss,WebLogic,GlassFish应用服务器上时,它们会使用EJB进行应用服务器的事务管理能力。在这些管理环境中,你可以使用MANAGED事务管理器。
            注:Managed 是托管的意思,即我们编写的应用程序本身不去管理事务,而是把事务管理交给应用所在的服务器进行管理。

        2.3 dataSource 标签
            dataSource表示的是数据源:至少会包括该连接数据库的各种信息

mappers元素: SQL映射

    SQLMapper文件中包含的SQL映射语句将会被应用通过使用其标签中的id值来执行。我们需要在mybatis-config.xml文件中配置SQLMapper文件的位置。

发表评论

电子邮件地址不会被公开。 必填项已用*标注