springboot集成mybatis及mybatis generator工具使用
发布日期:2021-05-15 10:35:56 浏览次数:15 分类:精选文章

本文共 5937 字,大约阅读时间需要 19 分钟。

Spring Boot结合MyBatis入门体验

前言

MyBatis是一个功能强大的 ORM(对象关系映射)框架,能够帮助开发者更高效地与数据库交互。相较于Hibernate等完全自动化的框架,MyBatis的灵活性使其更适合研发人员进行个性化数据库操作。然而,传统的MyBatis应用需要配置大量的xml文件和代码,开发体验较为复杂。随着时间的推移,MyBatis团队逐步推出了生成工具和基于注解的开发模式,以减轻开发负担。特别是在Spring Boot风靡开源项目的背景下,MyBatis推出了Spring Boot增强版mybatis-spring-boot-starter,极大提升了开发效率。

正文:Spring Boot与MyBatis集成

在这个快速开发的项目环境下,选择Spring Boot和MyBatis搭建基础框架是高效的选择。以下将从项目初始化、依赖管理、数据源配置、代码编写到功能实现的各个环节进行详细介绍。

1. 项目初始化

启动一个基于Spring Boot的项目 easiest way to start是一个好选择:访问Spring Boot Initializer,选择要集成的依赖。对于本次项目,基本配置如下:

  • Spring Boot Starter Web:提供Spring Boot的Web层功能。
  • MyBatis Spring Boot Starter:用于整合MyBatis框架。
  • MySQL Connector:配置数据源。

项目初始化完成后,创建一个pom.xml文件:

org.springframework.boot
spring-boot-starter-web
mysql
mysql-connector-java
org.mybatis.springboot
mybatis-spring-boot-starter
1.3.1
org.springframework.boot
spring-boot-starter-test
test
2. 数据源与MyBatis配置

在项目的application.properties中,添加以下内容,完成数据源和MyBatis的配置:

spring.datasource.url=jdbc:mysql://localhost:3306/mydemodb
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
3. 业务逻辑编写

这一步骤涉及创建实体类、DAO接口及其对应的映射文件。

  • 实体类
public class User {
private String id;
private String name;
private String sex;
private int age;
}
  • DAO接口
@Mapper
public interface UserDao {
User getUserById(int id);
int updateUser(User user);
int insertUser(User user);
int deleteUserById(int id);
}
  • Mapper文件
UPDATE user SET
name = #{user.name},
sex = #{user.sex},
age = #{user.age}
Where id = #{id}
INSERT INTO user
(id, name, sex, age)
VALUES #{user.id}, #{user.name}, #{user.sex}, #{user.age}
DELETE From user
Where id = #{id}
4. 扫描与注入

在启动类上开启对DAO接口的扫描,同时注入相应的数据访问对象:

@SpringBootApplication
@ComponentScan("com.example.dao")
@MapperScan("com.example.dao")
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
5. 测试控制器

编写一个简单的RestController,用于测试数据访问:

@RestController
public class HelloController {
@Autowired
private UserDao userDao;
@RequestMapping("/hello")
public User hello() {
User user = userDao.getUserById(1);
System.out.println("Retrieved User: " + user);
return user;
}
}
6. 安装MyBatis Generator

如果需要自动化生成代码,可以集成MyBatis Generator工具。编辑pom.xml,添加生成工具依赖:

org.mybatis.generator
mybatis-generator-maven-plugin
1.3.2
Generate MyBatis Artifacts
deploy
generate
src/main/resources/mybatis-generator/generatorConfig.xml
true
true
mysql
mysql-connector-java
5.1.34
org.mybatis.generator
mybatis-generator-core
1.3.2
org.springframework.boot
spring-boot-maven-plugin
exec
7. 生成器配置

创建mybatis-generator/generatorConfig.xml,并添加以下配置内容:

project=target
resources=target/resources
Laudation:
基于以上代码配置,您可以通过以下步骤完成数据库表的生成:
运行以下命令:
```bash
mvn mybatis-generator:generate

完成后,项目中会自动生成完整的实体类、DAO接口及对应的MyBatis映射文件(XML或注解形式)。

通过以下步骤添加注解:

  • 创建一个新的DAO类,例如:
  • @Mapper
    public interface UserAnnotationDao {
    @Select("SELECT * FROM user WHERE id = #{id}")
    @Results({
    @Result(property = "id", column = "id"),
    @Result(property = "name", column = "name"),
    @Result(property = "sex", column = "sex"),
    @Result(property = "age", column = "age")
    })
    User getUserById(int id);
    @Select("SELECT * FROM user")
    @Results({
    @Result(property = "id", column = "id"),
    @Result(property = "name", column = "name"),
    @Result(property = "sex", column = "sex"),
    @Result(property = "age", column = "age")
    })
    List
    queryAll();
    @Update("UPDATE user SET NAME = #{user.name}, SEX = #{user.sex}, AGE = #{user.age} WHERE ID = #{user.id}")
    int updateUser(User user);
    @Insert("INSERT INTO user(id, name, sex, age) VALUES (#{user.id}, #{user.name}, #{user.sex}, #{user.age})")
    int insertUser(User user);
    @Delete("DELETE user WHERE ID = #{id}")
    int deleteUserById(int id);
    }

    以上是基于注解的实现方式,可按需选择适合项目需求的映射方式。

    通过以上步骤,您已成功集成Spring Boot和MyBatis,完成了用户数据的 CRUD 操作。在实际项目中,可根据具体需求调整配置,充分发挥MyBatis的灵活性和高效性。

    上一篇:Shiro权限控制(一):shiro介绍以及整合SSM框架
    下一篇:Mybatis Generator最完整配置详解

    发表评论

    最新留言

    表示我来过!
    [***.240.166.169]2025年04月19日 13时23分37秒