Mybatis的配置

Mybatis配置解析

  • 在mybatis-config.xml 里面进行配置

  • 所有能配置的内容如下

configuration(配置) 
	properties(属性) 
	settings(设置) 
	typeAliases(类型别名) 
	typeHandlers(类型处理器) 
	objectFactory(对象工厂) 
	plugins(插件) 
	environments(环境配置) 
		environment(环境变量) 
			transactionManager(事务管理器) 
			dataSource(数据源) 
	databaseIdProvider(数据库厂商标识) 
	mappers(映射器) 
	<!-- 注意元素节点的顺序!顺序不对会报错 -->

常用配置:

1.configuration

<!--配置环境(可以配置多套环境,可以指定选用的环境)-->
<environments default="development">
    <!--配置mysql的环境-->
    <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>
  • 配置MyBatis的多套运行环境,将SQL映射到多个不同的数据库上,必须指定其中一个为默认运行环境(通过default指定)
  • 子元素节点:transactionManager事务管理器,有两种分别是JDBCMANAGED
  • 子元素节点:dataSource数据源有三种类型,分别是如下
    • unpooled:这个数据源的实现只是每次被请求时打开和关闭连接。
    • pooled:这种数据源的实现利用“池”的概念将 JDBC 连接对象组织起来 , 这是一种使得并发 Web 应用快速响应请求的流行处理方式
    • jndi:这个数据源的实现是为了能在如 Spring 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的引用。
    • 数据源也有很多第三方的实现,比如dbcp,c3po,druid等等

2.mappers

引入资源方式:

<!-- 使用相对于类路径的资源引用 --> 
<mappers> 
    <mapper resource="org/mybatis/builder/PostMapper.xml"/>
</mappers>
<!-- 使用完全限定资源定位符(URL) --> 
<mappers> 
    <mapper url="file:///var/mappers/AuthorMapper.xml"/> 
<mappers>    
<!-- 使用映射器接口实现类的完全限定类名 需要配置文件名称和接口名称一致,并且位于同一目录下 --> 
<mappers> 
    <mapper class="org.mybatis.builder.AuthorMapper"/>
</mappers>
<!-- 将包内的映射器接口实现全部注册为映射器 但是需要配置文件名称和接口名称一致,并且位于同一目录下 --> 
<mappers> 
    <package name="org.mybatis.builder"/> 
</mappers>

3.properties

数据库的属性是可以动态替换的,所以我们可以用properties文件来传递属性

  • 在resources目录下新建一个db.properties文件

    driver = com.mysql.cj.jdbc.Driver
    url = jdbc:mysql://localhost:3306/mybatiserverTimezone=UTC
    username = root
    password = root
    
  • 在配置文件中导入properties(配置文件是有顺序的)

    <configuration>
        <!--引入db.properties资源文件-->
        <properties resource="db.properties"/>
        <!--配置环境(可以配置多套环境,可以指定选用的环境)-->
        <environments default="development">
            <!--配置mysql的环境-->
            <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>
    </configuration>
    

4.typeAliases

设置别名,我们可以在mapper文件中不用写那么长的全限类名了

<!--配置别名,注意顺序--> 
<typeAliases> 
	<typeAlias type="com.lili.entity.User" alias="User"/>
</typeAliases>

也可以使用以下的方式,则配置如下:

<!--扫描包下的所有javaBean--> 
<typeAliases> 
	<typeAlias package="com.lili.entity"/>
</typeAliases>

每一个在包 com.lili.entity 中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。若有注解,则别名为其注解值。见下面的例子:

@Alias("user") 
public class User {
    ...
}

5.常用settings

<settings>
    <setting name="cacheEnabled" value="true"/>      //是否开启缓存
    <setting name="lazyLoadingEnabled" value="true"/>//是否开启懒加载
    <setting name="mapUnderscoreToCamelCase" value="false"/>// 是否开启下划线转驼峰
</settings>

posted @   JamieChyi  阅读(23)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示