《Java EE 互联网轻量级框架整合开发——SSM框架和Redis实现》 第4章MyBatis配置

4.1 概述

配置文件所有元素如下:



	
	
	
	
	
	
	
		
			
			
		
	
	
	

注意:

  • MyBatis配置项的顺序不能颠倒,否则发生异常
  • 常用内容:
    • properties
    • settings
    • typeAliases
    • typeHandler
    • plugin
    • environments
    • mapper

4.2 properties 属性

properties属性可以给系统配置一些运行参数,可以放在XML文件或者properties文件中
不放在Java编码中
使用方式:

  • property 子元素
  • properties 文件
  • 程序代码传递

4.2.1 property 子元素


	
	
	
	



	
	
	
	



	
		
		
			
			
			
			
		
	

4.2.2 使用properties文件

在MyBatis中通过 properties 的属性 resource来引入properties文件


也可以按${database.username}的方法引入properties文件的属性参数到MyBatis配置文件中。这个时候通过维护properties文件就可以维护我们的配置内容了

4.2.3 使用程序传递方法传递参数

可以对用户名和密码进行解密和加密

settings 设置

settings设置可以深刻影响MyBatis底层的运行,在大部分情况下使用默认值即可
常用配置包括:

  • 关于缓存的cacheEnabled
  • 关于级联的lazyLoadingEnabled和aggressiveLazyLoading
  • 关于自动映射的autoMappingBehavior和mapUnderscoreToCamelCase
  • 关于执行器类型的defaultExecutorType

4.4 typeAliases别名

类的全限定名称很长,在MyBatis中允许定义一个简写来代表这个类,使用typeAliases来配置

4.4.1 系统定义别名

4.4.2 自定义别名

  1. 使用配置文件自定义

	

  1. 扫描方式自定义

	

这样MyBatis将扫描这个包里的类,将其第一个字母变为小写作为其别名
为防止出现重名,可以使用MyBatis提供的注解@Alias(”别名“)进行区分

4.5 typeHandler 类型转换器

在typeHandler中,分为jdbcType和javaType

  • jdbcType:定义数据库类型
  • javaType:定义Java类型
  • typeHandler作用为承担jdbcType和javaType之间的相互转换
    在大部分情况下哎无须显式地声明jdbcType和javaType
    也可以自动一typeHandler

4.6 ObjectFactory(对象工厂)

当创建结果集时,MyBatis会使用一个对象工厂来完成创建这个结果集实例。在默认的情况下,MyBatis会使用其定义的对象工厂——DefaultObjectFactory来完成对应的工作
MyBatis同样允许注册自定义的ObjectFactory

4.7 插件

4.8 environments(运行环境)

运行环境主要的作用是配置数据库信息,可以配置多个数据库
它下面又分为两个可配置的元素:事务管理器(transactionManager)、数据源(dataSource)
在实际的工作中,大部分情况下会采用Spring对数据源和数据库的事务进行管理

4.8.1 transactionManager(事务管理器)

MyBatis提供两个实现类:

  • jdbcTransaction
  • ManagedTransaction
    于是可以把事务管理器配置成为以下两种方式:


  • JDBC以JDBC的方式对数据库的提交和回滚进行操作
  • MANAGED的提交和回滚方法不用任何操作,而是把事务交给容器处理,默认下,会关闭连接

4.8.2 environment 数据源环境

environment主要作用是配置数据源
3种配置方式:




  1. UNPOOLED
    采用非数据库池的管理方式,每次请求都会打开一个新的数据库连接,所以创建比较慢
    在一些对性能没有很高的要求的场合可以使用它
  2. POOLED
    数据源POOLED利用“池”的概念将JDBC的Connection对象组织起来,开始会有一些空置,并且已经连接号的数据库连接,请求时,无需再建立和验证,省去了创建新的连接实例时所必需的初始化和认证时间
    还控制最大连接诶书,避免过多连接导致系统瓶颈
  3. JNDI

4.9 dataBaseIdProvider 数据库厂商标识

主要是支持多种不同厂商的数据库


	
	
	

4.10 引入映射器的方法

映射器定义命名空间(namespace)的方法,命名空间对应的是一个接口的全路径,而不是实现类

  1. 用文件路径引入映射器

	

  1. 用包名引入映射器

	

  1. 用类注册引入映射器

	

  1. 用userMapper.xml引入映射器

	

你可能感兴趣的:(Java,EE,读书笔记)