Mybatis配置详解

1、SqlSession的使用范围说明

一、SQLSessionFactoryBuilder

  经过SqlSessionFactoryBuilder建立会话工厂SqlSessionFactory,将SqlSessionFactoryBuilder当成一个工具类使用便可,不须要使用单例模式管理,在建立SqlSessionFactory的时候,只须要new一次SqlSessionFactoryBuilder便可。java

二、SqlSessionFactory

  经过SqlSessionFactory建立SqlSession,使用单例模式来管理SqlSessionFactory(工厂一旦建立,只使用一个实例)。mysql

三、SqlSession

  SqlSession是一个面向用户(程序员)的接口。
  SqlSession中提供了不少操做数据库的方法:如selectOne(返回单个对象)、selectList(返回单个或多个对象)。
  SqlSession是线程不安全的,由于在SqlSession中除了有接口中的方法(操做数据库的方法)以外。还有数据域属性。
  SqlSession的最佳应用场合是在方法体内,将其定义为局部变量来使用。程序员

2、SqlMapConfig.xml配置文件详解

一、Properties属性

  Properties属性用来加载属性配置文件。sql

<!--数据库

加载属性文件

    resource:属性文件的相对路径

    url:属性文件的绝对路径

 -->

<properties resource="config/db.properties">

    <!--

        配置一些属性

        name:属性的名称

        value:属性的值

    -->

    <!--<property name="" value="" /> -->

</properties>

  

  properties特性:
   Mybatis将按照下面的属性来加载属性:
   1. 首先会读取在property标签中定义的属性。
   2. 而后会读取在properties标签中经过resource或url加载时的属性,它会覆盖已读取得同名属性。
   3. 最后会读取sql中parameterType传递过来的属性,它会覆盖已读取的同名属性。缓存

二、settings全局参数配置

  Mybatis框架在运行时能够调整一些运行参数,好比:开启二级缓存、开启延迟加载等。这些参数要经过settings标签来配置,全局参数会影响Mybatis的运行行为,配置必定要注意。安全

  经常使用的全局配置参数以下:mybatis

<!--全局参数配置-->app

<settings >

        <!--

            name:属性名称

            value:属性的值

        -->

    <setting name="" value=""/>

</settings>

  

三、typeAlia

  在映射文件中的parameterType和resultType属性中要指定输入、输出映射类型,若是类型为PO,要指定PO类的全路径这样不是特别方便,可使用typeAlias定义一些别名,来方便开发。框架

<!--定义别名-->

<typeAliases>

    <!--

        type:须要起别名的字符串

        alias:对应的别名

    -->

    <typeAlias type="" alias="" />

    

    <!--

        name:包名,会对包下面的类进行扫描,自动批量设置别名,

            设置的别名为类名,首字母大小写都可

    -->

    <package name="" />

   

</typeAliases>

  Mybatis的默认别名
  

四、typeHandlers(类型处理器)

  Mybatis中经过typeHandlers完成jdbc类型和Java类型的装换。一般状况下,Mybatis提供的类型处理器知足平常须要,不须要咱们再自定义。

<typeHandlers>

<typeHandler handler="" jdbcType="" javaType="" />

</typeHandlers>

  Mybatis默认支持的数据类型
  

五、environments 环境

<!--

环境配置

    在和Spring整合后改配置将废除

-->

<environments default="development">



    <environment id="development">

        <!--使用JDBC的事务管理,事务管理交给Mybatis-->

        <transactionManager type="JDBC"></transactionManager>

        <!--数据库链接池,有Mybatis管理-->

        <dataSource type="POOLED">

            <property name="driver" value="com.mysql.jdbc.Driver" />

            <property name="url" value="jdbc:mysql://localhost:3306/mybatis" />

            <property name="username" value="root" />

            <property name="password" value="root" />

        </dataSource>

    </environment>

</environments>

  

六、mapper 加载映射文件

  加载映射文件有三种方式

  一、加载单个映射文件

<!--引入mapper-->

<mappers>

    <!--rerource:引入映射文件相对于classpath的地址-->

    <mapper resource="config/sqlmap/userMapper.xml" />

</mappers>
  

  二、经过Mapper接口加载单个映射文件
  前提条件:
   (1). 使用Mapper代理的方式进行开发。
   (2). Mapper接口文件名要和映射文件名一致
   (3).Mapper接口文件和映射文件在同一个目录下

<!--引入mapper-->

<mappers>

    

    <mapper class="com.jack.po.UserMapper" />

</mappers>
  

  三、批量记载映射文件
  前提条件:
   (1). 使用Mapper代理的方式进行开发。
   (2). Mapper接口文件名要和映射文件名一致
   (3).Mapper接口文件和映射文件在同一个目录下

<!--引入mapper-->

<mappers>

    <!--name:mapper接口文件所在的包路径-->

  <package name="" />

</mappers>

  本文来自上海尚学堂Java学员,转载请注明出处。

相关文章
相关标签/搜索