Mybatis注解与配置文件使用详解
需积分: 0 44 浏览量
更新于2024-09-02
收藏 12KB MD 举报
"这是关于Mybatis的学习笔记,涵盖了基于注解和基于配置文件的两种使用方式。笔记中提到了Mybatis的官方文档链接、POM依赖、实体类、接口文件、映射文件和配置文件的创建与配置。"
在Mybatis框架的学习过程中,有两个主要的实现方式:基于注解和基于配置文件。下面将详细阐述这两个方面。
### 基于注解的方式
1. POM依赖:Mybatis的依赖通常通过Maven管理,需要在`pom.xml`文件中添加Mybatis的依赖。示例代码如下:
```xml
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>x.x.x</version>
</dependency>
```
2. 实体类:实体类用于映射数据库中的表,例如`Student`类代表`studentInfo`表。
3. 接口文件:使用`@Mapper`注解标记接口,如`StudentMapper`。接口中的方法通过`@Select`等注解指定SQL语句。例如:
```java
@Mapper
public interface StudentMapper {
@Select("select * from studentInfo")
List<Student> findAll();
@Select("select * from studentInfowherestudentId=#{studentId}")
Student selectById(Integer studentId);
}
```
4. 启用注解扫描:在启动类上使用`@MapperScan`注解,指定包含Mapper接口的包名,使得Spring可以自动扫描并管理这些接口。
5. 使用:在Controller中通过@Autowired注解注入对应的Mapper接口,直接调用其方法即可执行数据库操作。
### 基于配置文件的方式
1. POM依赖:与注解方式相同,需要引入Mybatis的依赖。
2. 实体类:同样需要实体类来对应数据库表。
3. Mapper接口文件:接口文件如`UserMapper`,但这里还可以使用`@Repository`注解,使其成为Spring管理的Bean。接口中的方法对应映射文件中的SQL语句。
4. 映射文件(Mapper XML):每个Mapper接口对应一个XML映射文件,如`UserMapper.xml`,定义SQL语句、结果映射等。例如:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.UserMapper">
<select id="findById" resultType="com.example.User">
SELECT * FROM user WHERE id = #{id}
</select>
<!-- 其他方法 -->
</mapper>
```
5. 配置文件:Mybatis的全局配置文件`mybatis-config.xml`,用于设置别名、数据源、事务管理器等。在其中可以定义实体类的别名,简化XML中的引用。
6. Spring配置:在Spring的配置文件中,需要配置数据源、SqlSessionFactory以及Mapper扫描器,使Spring能够管理Mybatis。
通过以上两种方式,Mybatis可以与Spring结合,实现对数据库的操作。无论是注解还是XML配置,Mybatis的核心都是将SQL语句与Java代码解耦,提供灵活的映射机制,简化了数据访问层的开发。
2020-11-13 上传
不脱发的猴子
- 粉丝: 2446
- 资源: 8
最新资源
- Haskell编写的C-Minus编译器针对TM架构实现
- 水电模拟工具HydroElectric开发使用Matlab
- Vue与antd结合的后台管理系统分模块打包技术解析
- 微信小游戏开发新框架:SFramework_LayaAir
- AFO算法与GA/PSO在多式联运路径优化中的应用研究
- MapleLeaflet:Ruby中构建Leaflet.js地图的简易工具
- FontForge安装包下载指南
- 个人博客系统开发:设计、安全与管理功能解析
- SmartWiki-AmazeUI风格:自定义Markdown Wiki系统
- USB虚拟串口驱动助力刻字机高效运行
- 加拿大早期种子投资通用条款清单详解
- SSM与Layui结合的汽车租赁系统
- 探索混沌与精英引导结合的鲸鱼优化算法
- Scala教程详解:代码实例与实践操作指南
- Rails 4.0+ 资产管道集成 Handlebars.js 实例解析
- Python实现Spark计算矩阵向量的余弦相似度