Mybatis的配置

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: 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>


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3月前
|
SQL Java 数据库连接
springboot中配置mybatis别名该怎么写?
springboot中配置mybatis别名该怎么写?
|
3月前
|
SQL Java 数据库连接
挺详细的spring+springmvc+mybatis配置整合|含源代码
挺详细的spring+springmvc+mybatis配置整合|含源代码
|
5天前
|
安全 Java 数据库连接
后端框架的学习----mybatis框架(3、配置解析)
这篇文章详细介绍了MyBatis框架的核心配置文件解析,包括环境配置、属性配置、类型别名设置、映射器注册以及SqlSessionFactory和SqlSession的生命周期和作用域管理。
后端框架的学习----mybatis框架(3、配置解析)
|
3月前
|
SQL 安全 BI
基于jeecg-boot的nbcio-boot因升级mybatis-plus到3.5.3.1和JSQLParser 到4.6而引起的在线报表配置报错处理
基于jeecg-boot的nbcio-boot因升级mybatis-plus到3.5.3.1和JSQLParser 到4.6而引起的在线报表配置报错处理
103 0
|
16天前
|
缓存 Java 数据库连接
mybatis1.常见配置
本文介绍了MyBatis框架中的常见配置及其加载顺序。配置可通过`properties`元素、资源文件或方法参数传递,其中方法参数传递的属性具有最高优先级。文章列举了几个重要的配置项,如`cacheEnabled`用于全局开启或关闭缓存功能;`lazyLoadingEnabled`控制对象的延迟加载行为;`useGeneratedKeys`允许JDBC支持自动生成主键;`defaultExecutorType`设定默认执行器类型等。此外,还介绍了多环境配置方法,通过`environments`元素可定义不同环境下的数据库连接信息,并可根据需求动态选择加载特定环境
|
22天前
|
SQL Java 数据库连接
idea中配置mybatis 映射文件模版及 mybatis plus 自定义sql
idea中配置mybatis 映射文件模版及 mybatis plus 自定义sql
37 3
|
2月前
|
SQL 人工智能 Java
mybatis-plus配置sql拦截器实现完整sql打印
_shigen_ 博主分享了如何在MyBatis-Plus中打印完整SQL,包括更新和查询操作。默认日志打印的SQL用?代替参数,但通过自定义`SqlInterceptor`可以显示详细信息。代码示例展示了拦截器如何替换?以显示实际参数,并计算执行时间。配置中添加拦截器以启用此功能。文章提到了分页查询时的限制,以及对AI在编程辅助方面的思考。
140 5
mybatis-plus配置sql拦截器实现完整sql打印
|
1月前
|
Java 数据库连接 mybatis
SpringBoot配置Mybatis注意事项,mappers层下的name命名空间,要落实到Dao的video类,resultType要落到bean,配置好mybatis的对应依赖。
SpringBoot配置Mybatis注意事项,mappers层下的name命名空间,要落实到Dao的video类,resultType要落到bean,配置好mybatis的对应依赖。
|
2月前
|
XML 前端开发 Java
Mybatis-Plus乐观锁配置
Mybatis-Plus乐观锁配置
27 1
|
2月前
|
Java Spring
mybatisplus的typeAliasesPackage 配置
【6月更文挑战第20天】mybatisplus的typeAliasesPackage 配置
217 3