springboot整合mybatis



在现代Java开发中,Spring Boot框架因其便捷的配置和快速的开发能力而备受青睐。而MyBatis作为轻量级的持久层框架,以其灵活的SQL映射和强大的数据访问能力,也是许多开发者的选择。本教程将详细介绍如何将Spring Boot与MyBatis整合,构建一个基于分层结构(controller、service、mapper)的应用。 1. **引入依赖** 我们需要在Spring Boot项目的`pom.xml`文件中添加MyBatis和相关的依赖。这包括MyBatis核心库、MyBatis-Spring Boot Starter以及数据库驱动(例如MySQL或Oracle): ```xml <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.2.2</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> ``` 2. **配置数据源** 在`application.properties`或`application.yml`中配置数据库连接信息,如数据库URL、用户名、密码等: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver ``` 3. **配置MyBatis** 在`src/main/resources`下创建`mybatis-config.xml`,配置MyBatis的基本设置,如配置扫描Mapper接口的包: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <mappers> <package name="com.example.demo.mapper"/> </mappers> </configuration> ``` 4. **创建实体类** 创建与数据库表对应的实体类,例如`User.java`,包含与数据库字段相对应的属性和getter/setter方法。 5. **编写Mapper接口** 创建Mapper接口,比如`UserMapper.java`,定义需要执行的SQL语句。这些方法名会与XML中的SQL片段关联。使用`@Mapper`注解标记该接口: ```java package com.example.demo.mapper; import com.example.demo.entity.User; import org.apache.ibatis.annotations.Select; import org.springframework.stereotype.Repository; @Repository public interface UserMapper { @Select("SELECT * FROM user WHERE id = #{id}") User getUserById(Long id); } ``` 6. **Mapper XML文件** 在`src/main/resources/mapper`目录下创建`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.demo.mapper.UserMapper"> <select id="getUserById" resultType="com.example.demo.entity.User"> SELECT * FROM user WHERE id = #{id} </select> </mapper> ``` 7. **创建Service** 创建业务逻辑层的Service类,例如`UserService.java`,注入Mapper并实现业务逻辑: ```java package com.example.demo.service; import com.example.demo.entity.User; import com.example.demo.mapper.UserMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class UserService { private final UserMapper userMapper; @Autowired public UserService(UserMapper userMapper) { this.userMapper = userMapper; } public User getUserById(Long id) { return userMapper.getUserById(id); } } ``` 8. **创建Controller** 创建控制层的Controller类,例如`UserController.java`,处理HTTP请求,并调用Service进行数据操作: ```java package com.example.demo.controller; import com.example.demo.entity.User; import com.example.demo.service.UserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController { private final UserService userService; @Autowired public UserController(UserService userService) { this.userService = userService; } @GetMapping("/user/{id}") public User getUser(@PathVariable Long id) { return userService.getUserById(id); } } ``` 9. **启动与测试** 运行Spring Boot应用,通过HTTP客户端(如Postman)发送GET请求到`/user/{id}`,验证是否能正确获取用户信息。 以上就是Spring Boot与MyBatis整合的基本步骤。通过这样的分层架构,可以清晰地划分各层职责,便于代码维护和扩展。实际项目中,还可以根据需求添加事务管理、日志记录、异常处理等组件,以增强系统的功能和稳定性。

















































- 1

- szh2882018-03-01测试可用,多谢
- May_苏2018-03-06项目很好很不错!值得观看
- bug修得完2018-11-07垃圾,不值得下载
- qq_280412032018-02-03研究一下,学习学洗
- acumes2017-08-03项目很好很不错!值得观看

- 粉丝: 26
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 网络体系结构-TCP-IP模型.ppt
- 通信监理2023年年终总结.docx
- 关于信息化环境下编制会计报表若干问题分析【会计实务操作教程】.pptx
- 基于云计算的安全技术发展与监管方面的研究.doc
- 苦荞网络营销简单版策划书.docx
- 小波神经网络原理及其应用.ppt
- 软件需求分析案例.doc
- 施工项目管理课程设计样本.doc
- 基于单片机的煤气泄漏及报警系统的设计.doc
- 遗传算法实践报告.docx
- 网络文明传播志愿小组活动方案.doc
- 网络营销职业生涯策划书.doc
- 基因工程的基本操作程序(精华).ppt
- 云计算第三版Google云计算原理与应用讲义.ppt
- 工程项目管理表格超级大全376页.docx
- 基于支持向量机的高速公路事件检测算法.ppt


