MyBatis XML 映射配置文件
来源:互联网 发布:阿里云是基于openstack 编辑:程序博客网 时间:2024/05/16 05:46
配置文件的基本结构
- configuration —— 根元素
- properties —— 定义配置外在化
- settings —— 一些全局性的配置
- typeAliases —— 为一些类定义别名
- typeHandlers —— 定义类型处理,也就是定义java类型与数据库中的数据类型之间的转换关系
- objectFactory
- plugins —— Mybatis的插件,插件可以修改Mybatis内部的运行规则
- environments —— 配置Mybatis的环境
- environment
- transactionManager —— 事务管理器
- dataSource —— 数据源
- environment
- databaseIdProvider ——数据库厂商标识
- mappers —— 指定映射文件或映射类
主要的几点:
settings
调整 settings 中的设置是非常关键的,它们会改变 MyBatis 的运行时行为。下表描述了设置中各项的意图、默认值等。
一个配置完整的 settings 元素的示例如下:
<settings> <setting name="cacheEnabled" value="true"/> <setting name="lazyLoadingEnabled" value="true"/> <setting name="multipleResultSetsEnabled" value="true"/> <setting name="useColumnLabel" value="true"/> <setting name="useGeneratedKeys" value="false"/> <setting name="autoMappingBehavior" value="PARTIAL"/> <setting name="defaultExecutorType" value="SIMPLE"/> <setting name="defaultStatementTimeout" value="25"/> <setting name="safeRowBoundsEnabled" value="false"/> <setting name="mapUnderscoreToCamelCase" value="false"/> <setting name="localCacheScope" value="SESSION"/> <setting name="jdbcTypeForNull" value="OTHER"/> <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/></settings>
配置环境(environments)
MyBatis 可以配置成适应多种环境,这种机制有助于将 SQL 映射应用于多种数据库之中,现实情况下有多种理由需要这么做。例如,开发、测试和生产环境需要有不同的配置;或者共享相同 Schema 的多个生产数据库,想使用相同的 SQL 映射。许多类似的用例。
不过要记住:尽管可以配置多个环境,每个 SqlSessionFactory 实例只能选择其一。
所以,如果你想连接两个数据库,就需要创建两个 SqlSessionFactory 实例,每个数据库对应一个。而如果是三个数据库,就需要三个实例,依此类推,记起来很简单:
- 每个数据库对应一个 SqlSessionFactory 实例
为了指定创建哪种环境,只要将它作为可选的参数传递给 SqlSessionFactoryBuilder 即可。可以接受环境配置的两个方法签名是:
SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader, environment);SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader, environment,properties);
如果忽略了环境参数,那么默认环境将会被加载,如下所示:
SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader);SqlSessionFactory factory = sqlSessionFactoryBuilder.build(reader,properties);
Environments配置示例
<environments default="development"> <environment id="development"> <transactionManager type="JDBC"> <property name="..." value="..."/> </transactionManager> <dataSource type="POOLED"> <property name="driver" value="${driver}"/> <property name="url" value="${url}"/> <property name="username" value="${username}"/> <property name="password" value="${password}"/> </dataSource> </environment></environments>
<environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/wifi?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull" /> <property name="username" value="root" /> <property name="password" value="123456" /> </dataSource> </environment> </environments>
注意这里的关键点:
- 默认的环境 ID(比如:default=”development”)。
- 每个 environment 元素定义的环境 ID(比如:id=”development”)。
- 事务管理器的配置(比如:type=”JDBC”)。
- 数据源的配置(比如:type=”POOLED”)。
默认的环境和环境 ID 是自我解释的。你可以使用你喜欢的名称来命名,只要确定默认的要匹配其中之一。
映射器(mappers)
既然 MyBatis 的行为已经由上述元素配置完了,我们现在就要定义 SQL 映射语句了。但是首先我们需要告诉 MyBatis 到哪里去找到这些语句。Java 在自动查找这方面没有提供一个很好的方法,所以最佳的方式是告诉 MyBatis 到哪里去找映射文件。你可以使用相对于类路径的资源引用,或完全限定资源定位符(包括 file:/// 的 URL),或类名和包名等。例如:
<!-- Using classpath relative resources --><mappers> <mapper resource="org/mybatis/builder/AuthorMapper.xml"/> <mapper resource="org/mybatis/builder/BlogMapper.xml"/> <mapper resource="org/mybatis/builder/PostMapper.xml"/></mappers>
<!-- Using url fully qualified paths --><mappers> <mapper url="file:///var/mappers/AuthorMapper.xml"/> <mapper url="file:///var/mappers/BlogMapper.xml"/> <mapper url="file:///var/mappers/PostMapper.xml"/></mappers>
<!-- Using mapper interface classes --><mappers> <mapper class="org.mybatis.builder.AuthorMapper"/> <mapper class="org.mybatis.builder.BlogMapper"/> <mapper class="org.mybatis.builder.PostMapper"/></mappers>
<!-- Register all interfaces in a package as mappers --><mappers> <package name="org.mybatis.builder"/></mappers>
- MyBatis XML 映射配置文件
- MyBatis XML 映射配置文件
- MyBatis XML 映射配置文件
- MyBatis XML 映射配置文件
- Mybatis--XML 映射配置文件
- MyBatis 中XML映射配置文件
- MyBatis 中XML映射配置文件
- Mybatis中XML 映射配置文件
- MyBatis的xml映射配置文件详解
- MyBatis xml映射配置文件之properties
- MyBatis理论知识(二)XML 映射配置文件
- Mybatis XML 映射配置文件 -- 熟悉配置
- mybatis系列-XML 映射配置文件(二)
- MyBatis中的结果集映射---xml配置文件
- MyBatis 官方文档学习2---XML 映射配置文件
- MyBatis 官方文档学习3---XML 映射配置文件
- MyBatis 官方文档学习2---XML 映射配置文件
- MyBatis中XML 映射配置文件的简单介绍
- 单播地址,组播地址,广播地址的区别
- JavaScript之全面理解面向对象的JS
- eclipse自动补全的设置
- IOS 如何选择delegate、notification、KVO?
- 表连接例子
- MyBatis XML 映射配置文件
- Tensorflow: recurrent neural network char-level 0
- JZ2440 启动NFS网络文件系统_初试led驱动
- iTextSharp 绘制字体中特殊符号到PDF
- CUDA编程(一):背景与安装
- 图解Android View的scrollTo(),scrollBy(),getScrollX(), getScrollY()
- AsyncTask异步任务类使用
- TableViewController中的搜索框和mj刷新配合使用
- picasso-强大的Android图片下载缓存库