关于“springboot集成mybatisplus实例详解”的攻略,首先我们需要明确一个事实——mybatisplus 是基于mybatis进行改进的一种ORM(对象关系映射)框架,它能够有效地提高我们开发项目的效率与代码的可维护性。
一、相关依赖引入
- 首先,我们需要在 pom.xml 文件中添加以下依赖:
<!-- mybatis-plus的核心依赖 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.3.2.tmp</version>
</dependency>
<!-- 这里使用的是mysql数据库,所以需要添加mysql的依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.23</version>
</dependency>
二、配置 SQLSessionFactory
- 首先,我们需要在 application.yml 文件中配置mybatisplus的相关参数:
spring:
datasource:
url: jdbc:mysql://localhost:3306/db_test?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
mybatis-plus:
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.example.pojo
global-config:
# 下划线转驼峰
db-config:
id-type: auto
column-underline: true
-
其中,mybatis-plus 的核心配置项有以下几个:
-
mapper-locations
:指定mybatis的mapper.xml文件的位置; type-aliases-package
:指定mybatis的model类所在的包路径;global-config
:设置一些全局配置,比如主键生成策略等。
在这里,我们使用了默认配置,即自动采用驼峰命名法规则,不需要额外的配置。
- 然后,在配置完 application.yml 文件后,我们需要在代码中编写 SQLSessionFactory 的配置类,其代码如下所示:
@Configuration
public class MybatisPlusConfig {
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
return interceptor;
}
@Bean
public ISqlInjector sqlInjector() {
return new DefaultSqlInjector();
}
@Bean(name = "sqlSessionFactory")
public SqlSessionFactory sqlSessionFactory(@Autowired DataSource dataSource) throws Exception {
SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(dataSource);
String mapperLocations = "classpath*:mapper/*.xml";
Resource[] resources = new PathMatchingResourcePatternResolver().getResources(mapperLocations);
sessionFactory.setMapperLocations(resources);
// 这里使用的是MybatisSqlSessionFactoryBean,因为要用到MybatisPlusInterceptor这个类
MybatisSqlSessionFactoryBean sqlSessionFactory = new MybatisSqlSessionFactoryBean();
sqlSessionFactory.setDataSource(dataSource);
sqlSessionFactory.setPlugins(mybatisPlusInterceptor());
return sqlSessionFactory.getObject();
}
}
-
其中,主要配置如下:
-
sqlSessionFactor
:用于配置SQLSessionFactory,它是mybatis的核心类,用于管理所有的Mapper对象和维护与数据库的连接; mapperLocations
:指定Mapper XML文件所在的包路径。MybatisPlusInterceptor
:mybatis-plus提供的拦截器,用于在SQL执行前/后进行一些特殊的处理。
三、添加Mapper和Service
- 在添加 Mapper 类之前,我们需要先添加一个对应的Pojo类,它将作为Mapper类映射的Java对象。如下所示:
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private Integer id;
private String name;
private Integer age;
private String email;
}
- 接下来,我们在 mybatis-plus 中添加一个Mapper类,用于对数据库进行增删改查操作:
@Repository
public interface UserMapper extends BaseMapper<User> {
}
- 然后,我们添加一个Service类(也就是服务层),它用于实现具体的业务逻辑:
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService {
private final UserMapper userMapper;
@Autowired
public UserServiceImpl(UserMapper userMapper) {
this.userMapper = userMapper;
}
@Override
public List<User> queryAllUsers() {
return userMapper.selectList(null);
}
@Override
public User queryUserById(Integer id) {
return userMapper.selectById(id);
}
@Override
public void addUser(User user) {
userMapper.insert(user);
}
@Override
public void updateUser(User user) {
userMapper.updateById(user);
}
@Override
public void deleteUser(Integer id) {
userMapper.deleteById(id);
}
}
在这个类里面,我们实现了UserMapper接口中定义的增删改查方法,其中,ServiceImpl
是mybatis-plus提供的一个 BaseService 实现,用于简化Service的编写过程,而 @Service
注解则表示这是一个服务层的类。
四、示例代码演示
接下来,我们来演示一下使用 mybatis-plus 在 SpringBoot 中访问mysql数据库的正确姿势。首先,我们分别编写控制器和视图层,实现对数据库表的增删改查操作。
示例1:添加用户
- 用户在界面上输入信息后,传递给后端请求的 URL 如下:
@RequestMapping(value = "/addUser", method = RequestMethod.POST)
public ModelAndView addUser(@ModelAttribute User user) {
userService.addUser(user);
return listUsers();
}
- 在后端,我们通过 UserService 的实现类,调用 addUser() 函数,将获取到的user对象添加至数据库,代码如下:
@Override
public void addUser(User user) {
userMapper.insert(user);
}
示例2:查询用户
- 用户进入查询界面,请求的 URL 如下:
@RequestMapping(value = "/listUsers", method = RequestMethod.GET)
public ModelAndView listUsers() {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("userList");
modelAndView.addObject("userList", userService.queryAllUsers());
return modelAndView;
}
在后端,我们通过 UserService 的queryAllUsers()函数获取到已有的所有用户,并将其保存在 ModelAndView 对象中,代码如下所示:
@Override
public List<User> queryAllUsers() {
return userMapper.selectList(null);
}
最后,在前端界面,我们使用 Thymeleaf 模板引擎来实现查询结果表格的展示,代码如下:
<table>
<tr>
<th>ID</th>
<th>Name</th>
<th>Age</th>
<th>Email</th>
</tr>
<tr th:each="user : ${userList}">
<td th:text="${user.id}"></td>
<td th:text="${user.name}"></td>
<td th:text="${user.age}"></td>
<td th:text="${user.email}"></td>
</tr>
</table>
至此,我们就成功的实现了在 SpringBoot 中使用 mybatis-plus 访问 mysql 数据库的全过程。
总结
本篇文章详细介绍了mybatis-plus在SpringBoot中的集成方法,并通过实例代码演示,让大家了解到如何通过mabatis-plus进行数据库增删改查操作。在实战中,掌握好mybatis-plus,能够让我们更快地进行Java Web项目开发,提升开发效率和代码质量。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot集成mybatisplus实例详解 - Python技术站