MyBatis(三):核心配置文件的重要配置

时间:2020-03-25 23:54:45   收藏:0   阅读:176

0.核心配置文件

1.environments

environment(环境变量)

 1 <!--default为默认环境-->
 2 <environments default="development">
 3     <!--环境1-->
 4   <environment id="development">
 5     <transactionManager type="JDBC">
 6       <property name="..." value="..."/>
 7     </transactionManager>
 8     <dataSource type="POOLED">
 9       <property name="driver" value="${driver}"/>
10       <property name="url" value="${url}"/>
11       <property name="username" value="${username}"/>
12       <property name="password" value="${password}"/>
13     </dataSource>
14   </environment>
15   
16   <!--环境2-->
17   <environment id="development">
18     <transactionManager type="JDBC">
19       <property name="..." value="..."/>
20     </transactionManager>
21     <dataSource type="POOLED">
22       <property name="driver" value="${driver}"/>
23       <property name="url" value="${url}"/>
24       <property name="username" value="${username}"/>
25       <property name="password" value="${password}"/>
26     </dataSource>
27   </environment>
28 ?
29 </environments>

 

可以接受环境配置的两个方法签名是:
?
1 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, environment);
2 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, environment, properties);

 

 

transactionManager(事务管理器)

在 MyBatis 中有两种类型的事务管理器(也就是 type="[JDBC|MANAGED]"):

dataSource(数据源)

dataSource 元素使用标准的 JDBC 数据源接口来配置 JDBC 连接对象的资源。

POOLED可使用的参数

2.properties

外部配置文件

技术分享图片

 

 

 

driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3308/mybatis?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8
username=root
password=mysql

 

外部配置和properties中都给了相同参数的配置的时候,会优先读取外部配置文件!

    <!--引入外部配置文件-->
    <properties resource="db.properties">
        <property name="username" value="root"/>
        <property name="password" value="mysql"/>
    </properties>
<!--那么environment中的变量就可以读取properties配置的参数-->
<environments default="development">
    <environment id="development">
        <transactionManager type="JDBC"/>
        <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>

 

3.typeAliases

给类起别名

    <typeAliases>
        <typeAlias alias="User" type="com.rzp.pojo.User"/>
    </typeAliases>

 

那么Mapper.xml使用配置时:

 1 <mapper namespace="com.rzp.dao.UserMapper">
 2     <!--可以直接使用User而不需要像第二个方法update里写全路径-->
 3     <select id="getUserList" resultType="User">
 4     select * from mybatis.user
 5     </select>
 6     
 7     <update id="updateUser" parameterType="com.rzp.pojo.User">
 8         update mybatis.user set name = #{name}, pwd = #{pwd} where  id = #{id};
 9     </update>
10 </mapper>

 

给包起别名

<typeAliases>
  <package name="com.rzp.pojo"/>
</typeAliases>
1 <mapper namespace="com.rzp.dao.UserMapper">
2     <!--user大写也可以,但是官方推荐小写-->
3     <select id="getUserList" resultType="user">
4     select * from mybatis.user
5     </select>
6 </mapper>
@Alias("author")
public class Author {
    ...
}

 

Java内置类的默认别名

别名映射的类型
_int int
int Integer
decimal BigDecimal
map Map

4.setting

设置名描述有效值默认值
cacheEnabled 全局性地开启或关闭所有映射器配置文件中已配置的任何缓存。 true | false true
lazyLoadingEnabled 延迟加载的全局开关。当开启时,所有关联对象都会延迟加载。 特定关联关系中可通过设置 fetchType 属性来覆盖该项的开关状态。 true | false false
mapUnderscoreToCamelCase 是否开启驼峰命名自动映射,即从经典数据库列名 A_COLUMN 映射到经典 Java 属性名 aColumn。 true | false False
logImpl 指定 MyBatis 所用日志的具体实现,未指定时将自动查找。 SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING 未设置
<settings>
  <setting name="cacheEnabled" value="true"/>
  <setting name="lazyLoadingEnabled" value="true"/>
  <setting name="mapUnderscoreToCamelCase" value="false"/>
</settings>

 

5.mappers

 1 <!-- 使用相对于类路径的资源引用,不要求同名同路径,只要xml里的namespace配置正确就可以-->
 2 <mappers>
 3   <mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
 4 </mappers>
 5 <!-- 使用映射器接口实现类的完全限定类名,要求接口和xml文件必须在同一个包下而且同名! -->
 6 <mappers>
 7   <mapper class="org.mybatis.builder.AuthorMapper"/>
 8 </mappers>
 9 ?
10 <!-- 将包内的映射器接口实现全部注册为映射器,要求接口和xml文件必须在同一个包下而且同名! -->
11 <mappers>
12   <package name="org.mybatis.builder"/>
13 </mappers>
14 ?
15 <!-- 使用完全限定资源定位符(URL),不推荐使用!! -->
16 <mappers>
17   <mapper url="file:///var/mappers/AuthorMapper.xml"/>
18 </mappers>
19 ?
接口和xml文件必须在同一个包下而且同名:

技术分享图片

 

 

其他配置

原文:https://www.cnblogs.com/renzhongpei/p/12571473.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!