mybatis的配置文件结构
来源:互联网 发布:云墙mac破解版 编辑:程序博客网 时间:2024/09/21 06:37
XML文件结构如:
configuration 配置
- properties 属性
- settings 设置
- typeAliases 类型命名
- typeHandlers 类型处理器
- objectFactory 对象工厂
- plugins 插件
- environments 环境
- environment 环境变量
- transactionManager 事务管理器
- dataSource 数据源
- environment 环境变量
- databaseIdProvider 数据库厂商标识
- mappers 映射器
(1)properties 属性
<!--要写在要用的前面-->
<properties resource="jdbc.properties">
<property name="username" value="root" />
<property name="password" value="mysql"/>
</properties>
<environments default="development">这个例子中的 username 和 password 将会由 properties 元素中设置的相应值来替换。 driver 和 url 属性将会由 config.properties 文件中对应的值来替换。这样就为配置提供了诸多灵活选择。
<environment id="development">
<!--决定事务范围和控制方式的事务管理器(TransactionManager)-->
<transactionManager type="JDBC" />
<!--数据库连接实例的数据源(DataSource)-->
<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>
如果属性在不只一个地方进行了配置,那么 MyBatis 将按照下面的顺序来加载:
- 在 properties 元素体内指定的属性首先被读取。
- 然后根据 properties 元素中的 resource 属性读取类路径下属性文件或根据 url 属性指定的路径读取属性文件,并覆盖已读取的同名属性。
- 最后读取作为方法参数传递的属性,并覆盖已读取的同名属性。
因此,通过方法参数传递的属性具有最高优先级,resource/url 属性中指定的配置文件次之,最低优先级的是 properties 属性中指定的属性。
(2)settings 设置
<settings>
<!--配置缓存的全局开关-->
<setting name="cacheEnabled" value="true"/>
<!--延迟加载的全局开关-->
<setting name="lazyLoadingEnabled" value="true"/>
<!--是否允许单一语句返回多结果集-->
<setting name="multipleResultSetsEnabled" value="true"/>
<!--使用列标签代替列名-->
<setting name="useColumnLabel" value="true"/>
<!--允许JDBC支持自动生成主键-->
<setting name="useGeneratedKeys" value="false"/>
<!--指定Mybatis应如何自动映射列到字段或属性-->
<setting name="autoMappingBehavior" value="PARTIAL"/>
<!--默认的执行器,SIMPLE就是普通的执行器,REUSE执行器会重用预处理语句,BATCH执行器将重用语句并执行批量更新-->
<setting name="defaultExecutorType" value="SIMPLE"/>
<!--设置超时时间,驱动等待数据库响应的秒数-->
<setting name="defaultStatementTimeout" value="25"/>
<!--允许在嵌套语句中使用分页-->
<setting name="safeRowBoundsEnabled" value="false"/>
<!--是否开启驼峰命名规则映射,即数据库A_COLUMN到JAVA属性aColumn-->
<setting name="mapUnderscoreToCamelCase" value="false"/>
<!--利用本地缓存机制防止循环引用和加速重复嵌套查询-->
<setting name="localCacheScope" value="SESSION"/>
<!--当没有为参数提供特定的JDBC类型时,为空值指定JDBC类型-->
<setting name="jdbcTypeForNull" value="OTHER"/>
<!--指定哪一个对象的方法触发一次延迟加载-->
<setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>
</settings>
<!--类型别名是为 Java 类型设置一个短的名字。它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余.-->也可以指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean
<typeAliases>
<typeAlias alias="User" type="com.pandawork.springmvc.common.entity.User"/>
</typeAliases>
<typeAliases>
<package name="com.pandawork.springmvc.common.entity"/>
</typeAliases>
如果你想连接两个数据库,就需要创建两个 SqlSessionFactory 实例,每个数据库对应一个。而如果是三个数据库,就需要三个实例,依此类推,记起来很简单:每个数据库对应一个 SqlSessionFactory 实例
事务管理器(transactionManager)
在 MyBatis 中有两种类型的事务管理器(也就是 type=”[JDBC|MANAGED]”):
- JDBC – 这个配置就是直接使用了 JDBC 的提交和回滚设置,它依赖于从数据源得到的连接来管理事务范围。
- MANAGED – 这个配置几乎没做什么。它从来不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)。 默认情况下它会关闭连接,然而一些容器并不希望这样,因此需要将 closeConnection 属性设置为 false 来阻止它默认的关闭行为
数据源(dataSource)
dataSource 元素使用标准的 JDBC 数据源接口来配置 JDBC 连接对象的资源。
- 许多 MyBatis 的应用程序将会按示例中的例子来配置数据源。然而它并不是必须的。要知道为了方便使用延迟加载,数据源才是必须的。
有三种内建的数据源类型(也就是 type=”[UNPOOLED|POOLED|JNDI]”):
UNPOOLED– 这个数据源的实现只是每次被请求时打开和关闭连接。
POOLED– 这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来,避免了创建新的连接实例时所必需的初始化和认证时间。
JNDI– 这个数据源的实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的引用。
0 0
- mybatis的配置文件结构
- MyBatis 配置文件基本结构
- MyBatis 配置文件基本结构
- mybatis配置文件层次结构
- JAVA mybatis:配置文件结构、项目
- MyBatis的配置文件解析
- Mybatis的映射配置文件
- springmvc+mybatis 的配置文件
- 一个mybatis的配置文件
- mybatis的配置文件
- MyBatis的配置文件
- Mybatis的全局配置文件
- MyBatis的配置文件
- Mybatis的配置文件
- GRUB配置文件的结构
- mybatis的配置文件的读取
- 一双跑鞋的mybatis(二)---mybatis配置文件
- mybatis的mybatis-config.xml配置文件详解
- Android 5.0以后版本打开“有权查看使用情况的应用”
- word两幅图并排并且插入题注不会乱
- 简单实现Google play 横向RecyclerListView效果
- 数字的组合
- 第7周项目2:友元类
- mybatis的配置文件结构
- java 数字精准计算方法,解析公式,类似 3*(1+2)
- android开发-获取wifi列表
- hdu 1024(滚动数组优化)
- Linux命令(面试题)
- HTML 元素和有效的 DTD
- 第6周项目4 静态成员函数
- Thread2 关键字
- MATLAB的基础-虽然基础,但全是细节,掌握了这些细节,才是MATLAB高手