Mybatis查询配置参数说明

本文详细介绍了MyBatis数据库配置文件的内容,包括数据库驱动加载、连接设置、实体映射类包名等。同时,解析了实体类配置文件中SQL语句的使用,以及参数类型(parameterType)和结果类型(resultType)的概念。最后,阐述了selectOne和selectList方法的区别与应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库配置文件:

数据库驱动加载、数据库连接、数据库名称、用户名、密码,实体映射类包名。
在这里插入图片描述

实体类配置文件:里面放sql语句

在这里插入图片描述

参数说明
parameterType
指定输入参数类型,mybatis 通过 ognl 从输入对象中获取参数值拼接在 sql 中。

resultType
指定输出结果类型,mybatis 将 sql 查询结果的一行记录数据映射为 resultType 指定
类型的	对象。如果有多条数据,则分别进行映射,并把对象放到容器List中。

selectOne
查询一条记录,如果使用 selectOne 查询多条记录则抛出异常。

selectList
可以查询一条或多条记录,返回一个 List 集合。
### MyBatis-Plus 配置参数详解 #### 1. Configuration 参数说明 `configuration` 是 MyBatis 中的核心配置对象,默认值为 `null`。它主要用于加载和管理 MyBatis 的全局配置项,这些配置可以来自 XML 文件或者通过代码动态设置[^1]。 在 MyBatis-Plus 中,`Configuration` 对象继承自 MyBatis 原生的功能,并扩展了一些额外的支持特性。开发者可以通过该对象调整 SQL 映射行为、缓存策略以及其他高级选项。 #### 2. PaginationInnerInterceptor 插件配置 为了实现分页查询功能,MyBatis-Plus 提供了一个名为 `PaginationInnerInterceptor` 的拦截器插件。此插件需要显式注册到 Spring Boot 或其他框架的应用上下文中才能生效[^4]。 以下是启用分页功能的典型代码示例: ```java import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class MyBatisPlusConfig { @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); } } ``` 上述代码片段展示了如何通过 Spring Bean 注册方式引入分页插件。 #### 3. 数据模型类中的常用注解 除了核心配置外,MyBatis-Plus 还提供了一系列便捷的注解来简化实体类定义过程。例如,Lombok 库中的 `@Data` 注解能够自动为类生成常见的 getter 和 setter 方法,从而减少样板代码编写工作量[^3]。 下面列举几个重要的注解及其作用: - **@TableName**: 指定数据库表名与实体类之间的映射关系。 - **@TableField**: 定义字段的具体属性,比如是否忽略某些列或指定特殊逻辑名称。 - **@Version**: 支持乐观锁机制下的版本号控制。 - **@KeySequence**: 主键生成策略之一,适用于 Oracle 等支持序列的数据源环境。 #### 4. 自动填充功能 借助于 `MetaObjectHandler` 接口以及相关注解(如 `@TableLogic`, `@InsertFill`, `@UpdateFill`),可以在不修改业务代码的前提下完成时间戳更新或其他默认值注入操作。 以下是一个简单的 MetaObjectHandler 实现例子: ```java @Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now()); } @Override public void updateFill(MetaObject metaObject) { this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); } } ``` 以上方法会在每次新增记录时自动填写创建时间和最后修改时间为当前时刻点。 --- ### 总结 综上所述,MyBatis-Plus 不仅保留了原有 MyBatis 的全部能力,还增加了许多实用的新特性和优化手段。无论是基础 CRUD 操作还是复杂场景需求处理方面均表现出色。合理利用其内置组件可以帮助团队更高效地构建基于 Java 技术栈的企业级应用系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值