热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Java的MyBatis框架中关键的XML字段映射的配置参数详解

将XML文件的schema字段映射到数据库的schema是我们操作数据库的常用手段,这里我们就来整理一些Java的MyBatis框架中关键的XML字段映射的配置参数详解,需要的朋友可以参考下

properties
这些是外部化的,可替代的属性,这些属性也可以配置在典型的Java属性配置文件中,或者通过properties元素的子元素来传递。例如:

  
    
    
  

其中的属性就可以在整个配置文件中使用,使用可替换的属性来实现动态配置。比如:

  
    
    
    
    
 

  
 这个例子中的username和password将会由properties元素中设置的值来替换。driver和url属性将会从包含进来的config.properties文件中的值来替换。
 
Settings
 
1.cacheEnabled
这个配置使全局的映射器启用或禁用缓存。
有效值:true,false
默认值:true
 
2.lazyLoadingEnabled
全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载。
有效值:true,false
默认值:true
 
3.aggressiveLazyLoading
当启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。否则,
每种属性将会按需要加载。
有效值:true,false
默认值:true
 
4.mult ipleResultSetsEnabled
允许或不允许多种结果集从一个单独的语句中返回(需要适合的驱动)
有效值:true,false
默认值:true
 
5.useColumnLabel
使用列标签代替列名。不同的驱动在这方便表现不同。参考驱动文档或充分测
试两种方法来决定所使用的驱动。
有效值:true,false
默认值:true
 
6.useGeneratedKeys
允许JDBC支持生成的键。需要适合的驱动。如果设置为true则这个设置强制
生成的键被使用,尽管一些驱动拒绝兼容但仍然有效(比如 Derby) 
有效值:true,false
默认值:false
 
7.autoMappingBehavior 
指定MyBatis如何自动映射列到字段/属性。PARTIAL只会自动映射简单,没有嵌套的结果。
FULL会自动映射任意复杂的结果(嵌套的或其他情况)
有效值:NONE,PARTIAL,FULL
默认值:PARTIAL
 
8.defaultExecutorType
配置默认的执行器。SIMPLE 执行器没有什么特别之处。REUSE执行器重用预处理语句。
BATCH 执行器重用语句和批量更新
有效值:SIMPLE,REUSE,BATCH
默认值:SIMPLE
 
9.defaultStatementTimeout 
设置超时时间,它决定驱动等待一个数据库响应的时间。
有效值:Any,positive,integer
默认值:Not Set(null) 
 
一个设置信息元素的示例,完全的配置如下所示:

  
    
    
    
    
    
    
    
    
 

typeAliases
类型别名是为Java类型命名一个短的名字。它只和XML配置有关,只用来减少类完全限定名的多余部分。例如:
 

  
    
    
    
    
    
    
 


使用这个配置,“Blog”可以任意用来替代“domain.blog.Blog”所使用的地方。  对于普通的 Java 类型,有许多内建的类型别名。它们都是大小写不敏感的,由于重载的名字,要注意原生类型的特殊处理。

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

201661163147223.png (617×676)

你可以重写类型处理器或创建你自己的类型处理器来处理不支持的或非标准的类型。但这种情况相当少!!

objectFactory
MyBatis每次创建结果对象新的实例时,它使用一个ObjectFactory实例来完成。如果参数映射存在,默认的ObjectFactory不比使用默认构造方法或带参数的构造方法实例化目标类做的工作多。如果你想重写默认的ObjectFactory,你可以创建你自己的。实例略。

plugins
MyBatis允许你在某一点拦截已映射语句执行的调用。默认情况下,MyBatis允许使用插件来拦截方法调用:
 
1.Executor
(update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)
 
2.ParameterHandler 
(getParameterObject, setParameters)

3.ResultSetHandler 
(handleResultSets, handleOutputParameters)
 
4.StatementHandler 
(prepare, parameterize, batch, update, query)

environments
MyBatis可以配置多种环境。这会帮助你将SQL映射应用于多种数据库之中。
一个很重要的问题要记得:你可以配置多种环境,但你只能为每个SqlSessionFactory实例选择一个。所以,如果你想连接两个数据库,你需要创建两个SqlSessionFactory实例,每个数据库对应一个。而如果是三个数据库,你就需要三个实例,以此类推。
环境元素定义了如何配置环境,如例:

  
    
      
        
      
      
        
        
        
        
      
    
  

注意这里:
1.默认的环境 ID(比如:default=”development”)。
2.每个 environment 元素定义的环境 ID(比如:id=”development”)。  
3.事务管理器的配置(比如:type=”JDBC”)。
4.数据源的配置(比如:type=”POOLED”)。

transactionManager
在MyBatis中有两种事务管理器类型(也就是type="[JDBC|MANAGED]"。
1.JDBC---这个配置直接简单使用了JDBC的提交和回滚设置。它依赖于从数据源得到的连接来管理事务范围。
2.MANAGED---这个配置几乎没做什么。它从来不提交或回滚一个连接。而它会让容器来管理事务的整个生命周期(比如Spring或JEE应用服务器的上下文)。默认情况下它会关闭连接。然而一些容器并不希望这样,因此如果你需要从连接中停止它,将closeConnection属性设置为false。例如:

  
    
  

 这两种事务管理器都不需要任何属性。然而它们都是类型别名,要替换它们,你需要放置你自己的类的完全限定名或类型别名,它们引用了你对TransacFactory接口的实现类。


推荐阅读
  • 探讨如何真正掌握Java EE,包括所需技能、工具和实践经验。资深软件教学总监李刚分享了对毕业生简历中常见问题的看法,并提供了详尽的标准。 ... [详细]
  • 本文探讨了在Windows Server 2008环境下配置Tomcat使用80端口时遇到的问题,包括端口被占用、多项目访问失败等,并提供详细的解决方法和配置建议。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文探讨了 RESTful API 和传统接口之间的关键差异,解释了为什么 RESTful API 在设计和实现上具有独特的优势。 ... [详细]
  • 本文详细介绍了如何使用Spring Boot进行高效开发,涵盖了配置、实例化容器以及核心注解的使用方法。 ... [详细]
  • 本文介绍如何在 Unity 的 XML 配置文件中,将参数传递给自定义生命周期管理器的构造函数。我们将详细探讨 CustomLifetimeManager 类的实现及其配置方法。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 自己用过的一些比较有用的css3新属性【HTML】
    web前端|html教程自己用过的一些比较用的css3新属性web前端-html教程css3刚推出不久,虽然大多数的css3属性在很多流行的浏览器中不支持,但我个人觉得还是要尽量开 ... [详细]
  • 本文详细介绍了Java Web应用程序中的过滤器(Filter)功能,包括其作用、实现方式及配置方法。过滤器可以在请求到达目标资源之前对其进行预处理,并在响应返回给客户端之前进行后处理。 ... [详细]
  • 本文介绍了多个关于JavaScript的书籍资源、实用工具和编程实例,涵盖从入门到进阶的各个阶段,帮助读者全面提升JavaScript编程能力。 ... [详细]
author-avatar
手机用户2502927451
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有