mybatis xml配置详解

Mybatis半自动(手写Sql语句)的ORM持久层框架

ORM : Object-relational Mapping(对象关系映射)
是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据中库

mybatis的配置文件信息
configuration

  • properties

      <properties resource="db.properties">
      </properties> 
    
  • settings

      全局设置
    
  • typeAliases

      使用全路径设置别名
      <typeAliases>
      	<typeAlias alias="Author" type="domain.blog.Author"/>
      	<typeAlias alias="Blog" type="domain.blog.Blog"/>
      	<typeAlias alias="Comment" type="domain.blog.Comment"/>
      </typeAliases>
      使用报名设置别名
      <typeAliases>
      	<package name="domain.blog"/>
      </typeAliases>
      在包内的类上使用@Alias("author")设置别名
    
  • typeHandlers

  • 对象工厂(objectFactory)

  • 插件(plugins)

      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 实例
    
      **默认的环境和环境 ID 是自解释的,因此一目了然。
      	你可以对环境随意命名,但一定要保证默认的环境 ID 要匹配其中一个环境 ID。**
    
      <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>
    

    事务管理器transactionManager

    两种类型 type=“JDBC” | “MANAGED”
    JDBC–使用了JDBC的提交和回滚设置,依赖于从数据源获得的连接来管理事务
    MANAGED–让容器来管理事务的整个生命周期,默认情况下会关闭连接

      阻止默认关闭连接
      <transactionManager type="MANAGED">
      	<property name="closeConnection" value="false"/>
      </transactionManager>
    

    Spring+Mybatis 无需配置事务管理器,Spring自带的事务管理器会覆盖掉。

    数据源

    1. UNPOOLED:不适用连接池,每次请求时,打开和关闭连接
    2. POOLED:使用连接池,避免创建新的连接实例时所需的的初始化和认证时间。使得并发web应用可以快速响应请求。
    3. JNDI : 这个数据源的实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的引用。
  • databaseIdProvider

    可以根据不同的数据库厂商执行不同的语句,这种多厂商的支持是基于映射语句中的 databaseId 属性

  • mappers(映射器)

    告诉Mybatis到哪里去找SQL映射语句。

    1. 使用相对于类路径的资源引用(resource)
      <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
    2. 使用完全限定资源定位符(URL)
      <mapper url="file:///var/mappers/AuthorMapper.xml"/>
    3. 使用映射器接口实现类的完全限定类名(class)
      <mapper class="org.mybatis.builder.AuthorMapper"/>
    4. 将包内的映射器接口实现全部注册为映射器(name)
      <package name="org.mybatis.builder"/>

猜你喜欢

转载自blog.csdn.net/weixin_42786532/article/details/88795601