Mybatis xml配置

mybatis.cfg.xml配置顺序.

Mybatis xml配置_第1张图片

可以从外部导入配置 例如数据源配置文件

<properties resource="mysql.properties">properties>

Mybatis xml配置_第2张图片

然后在里面进行动态加载

<dataSource type="POOLED">
            
                <property name="driver" value="${jdbc.driver}" />
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${jdbc.password}" />
            dataSource>

也可以把属性作为参数进行传递.

SqlSessionFactory build(Reader reader)—最常用的方法,直接配置好,直接读入使用


Environment environment=new Environment(id, transactionFactory, dataSource);
SqlSessionFactory build(Reader reader, String environment)—-把Environment分出来
Environment决定加载哪种环境,包括数据源和事务管理器。例如

<environments default="development">  
    <environment id="development">  
        <transactionManager type="JDBC"><dataSource type="POOLED">environment>  
    ---------------------------------------------
    <environment id="pro">  
        <transactionManager type="EXTERNAL"><dataSource type="JNDI">environment>  
environments>  

当把environment当参数传入时,configuration会配置environment,如果没有这个参数,将会调用默认的environment.

<environments default="development">  
    <environment id="development">  `

SqlSessionFactory build(Reader reader, Properties properties)—
如果你调用了使用properties实例的方法,那么MyBatis就会加载那些properties(属性配置文件),并你在你配置中可使用它们。那些属性可以用${xxx}语法形式多次用在配置文件中。

Mybatis xml配置_第3张图片
通过方法参数传递的属性具有最高优先级,resource/url 属性中指定的配置文件次之,最低优先级的是 properties 属性中指定的属性。

在3.4.2版本后,可以为占位符 设置一个默认值,但是默认是关闭的.

--开启默认值--!>
<property name="org.apache.ibatis.parsing.PropertyParser.enable-default-value" value="true"/>
"mysql.properties">
--使用 ":" 作为属性键    value="?:"--!>
 <property name="org.apache.ibatis.parsing.PropertyParser.default-value-separator" value="?:"/>


"POOLED">
  -- .... -->

  <property name="username" value="${db:username?:ut_user}"/>
   --  也可以使用三目运算符--!>
  <property name="username" value="${username!= null ? username: 'ut_user'}"/>

完整settings元素


   --映射器缓存开关--!>
  "cacheEnabled" value="true"/>
  --设置关联对象加载的形态,此处为按需加载字段(加载字段由SQL指                             定),不会加载关联表的所有字段,以提高性能
     "aggressiveLazyLoading" value="true"/>
   --!>
   -- 查询时,关闭关联对象即时加载以提高性能--!>
  "lazyLoadingEnabled" value="true"/>
  --是否允许单一语句返回多结果集(需要兼容驱动)。 默认true--!>
  "multipleResultSetsEnabled" value="true"/>
  -- 允许使用列标签代替列名 --> 
  "useColumnLabel" value="true"/>
  --允许JDBC自动生成主键 开启强制生成主键--!>
  "useGeneratedKeys" value="false"/>
  --给予被嵌套的resultMap以字段-属性的映射支持--!>
  "autoMappingBehavior" value="PARTIAL"/>

  "autoMappingUnknownColumnBehavior" value="WARNING"/>
  --置默认的执行器。SIMPLE 就是普通的执行器;REUSE 执行器会重用预处理语句(prepared statements); BATCH 执行器将重用语句并执行批量更新。--!>
  "defaultExecutorType" value="SIMPLE"/>
   -- 数据库超过25秒仍未响应则超时 --> 
  "defaultStatementTimeout" value="25"/>
  --为驱动的结果集获取数量(fetchSize)设置一个提示值--!>
  "defaultFetchSize" value="100"/>
  --允许在嵌套语句中使用分页--!>
  "safeRowBoundsEnabled" value="false"/>
  --是否开启自动驼峰命名规则(camel case)映射 数据库A_USER-->java aUser--!>
  "mapUnderscoreToCamelCase" value="false"/>
  --本地缓存机制--!>
  "localCacheScope" value="SESSION"/>
  --为空值指定 JDBC 类型--!>
  "jdbcTypeForNull" value="OTHER"/>
  --指定哪个对象的方法触发一次延迟加载。--!>
  "lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/>

typeAliases

类型别名是为 Java 类型设置一个短的名字。它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余

<typeAliases>
  <typeAlias alias="User" type="com.kx.domain.User"/>
  
   "domain.blog"/>
typeAliases>

 "UserMapper"  type="User">

typeHandlers

java类型转为 JDBC类型 例如 java.lang.Boolean, boolean —>数据库兼容的 BOOLEAN

映射器(mappers)

<mappers>
  <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
  <mapper url="file:///var/mappers/AuthorMapper.xml"/>
 <mapper class="org.mybatis.builder.AuthorMapper"/>
 
 

你可能感兴趣的:(mybatis)