SpringBoot整合MyBatis

目录

一、MyBatis

1.MyBatis简介

2.MyBatis优点

3.MyBatis局限性

二、Spring Boot中整合MyBatis

1、添加依赖

2、配置数据源

3、创建实体类

4、创建Mapper接口

5、创建Mapper XML文件

6、注册Mapper接口

7、使用Mapper接口(编写Service)

8、编写Controller层

三、整合MyBatis-plus

1.添加依赖

2.配置数据源

3.创建实体类

4.创建Mapper接口

5.使用注解


一、MyBatis

1.MyBatis简介

MyBatis是一个基于Java语言的持久层框架,它通过XML描述符或注解将对象与存储过程或SQL语句进行映射,并提供了普通SQL查询、存储过程和高级映射等操作方式,使得操作数据库变得非常方便。

2.MyBatis优点

  • 灵活性高:MyBatis不会对应用程序或数据库的现有设计强加任何影响,开发人员可以使用他们已经熟悉的SQL语句、存储过程和数据库触发器等
  • SQL可控性强:对于复杂查询和多表关联查询时,MyBatis的优势尤为明显,因为可以更加灵活地控制生成的SQL语句,并在需要的情况下针对不同的数据库实现进行优化。
  • 缓存机制好:MyBatis提供了一级缓存和二级缓存,可以有效地减少数据库访问次数,提高响应速度,而且它们的使用非常方便,并且默认情况下处于开启状态。
  • 生态系统完善:MyBatis有着非常强大的社区支持,同时它也与Spring,Spring Boot等流行框架或中间件无缝整合,方便企业级项目的开发。

3.MyBatis局限性

  • 性能问题:相比于Hibernate等ORM框架,在大规模数据处理能力和并发性方面,MyBatis的性能表现略逊一筹。
  • 配置复杂:相比Hibernate等ORM框架,MyBatis的配置文件相对较为复杂,需要花费更多的时间和精力进行配置。
  • 映射错误难以追踪:由于映射文件是通过XML描述符或注解进行的,为了解决常见的SQL问题,需要对SQL语句的编写和映射文件的正确描述非常敏感,出现异常时排查起来也较为繁琐。

二、Spring Boot中整合MyBatis

在Spring Boot中整合MyBatis可以通过以下步骤实现:

1、添加依赖

pom.xml文件中添加MyBatis和数据库驱动的依赖。

<dependencies>
    <!-- MyBatis -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.2.0</version>
    </dependency>
    <!-- 数据库驱动 -->
    <dependency>
        <groupId>com.mysql.cj</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.26</version>
    </dependency>
</dependencies>

2、配置数据源

application.propertiesapplication.yml文件中配置数据库连接信息。

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydatabase
    username: root
    password: password
    driver-class-name: com.mysql.cj.jdbc.Driver

3、创建实体类

创建与数据库表对应的实体类。

public class User {
    private Long id;
    private String userName;
    private String passWord;
    private String realName;
    // 省略getter和setter方法
}

4、创建Mapper接口

创建Mapper接口,定义数据库操作方法。

@Mapper
public interface UserMapper {
    User getUserById(Long id);
    void insertUser(User user);
    void updateUser(User user);
    void deleteUser(Long id);
}

5、创建Mapper XML文件

在resources目录下创建与Mapper接口对应的XML文件,编写SQL语句。

<!-- UserMapper.xml -->
<mapper namespace="com.example.mapper.UserMapper">
    <select id="getUserById" resultType="com.example.entity.User">
        SELECT * FROM user WHERE id = #{id}
    </select>
    <insert id="insertUser">
        INSERT INTO user (userName, passWord, realName) VALUES (#{userName}, #{passWord}, #{realName})
    </insert>
    <update id="updateUser">
        UPDATE user SET userName = #{userName}, passWord = #{passWord}, realName = #{realName} WHERE id = #{id}
    </update>
    <delete id="deleteUser">
        DELETE FROM user WHERE id = #{id}
    </delete>
</mapper>

6、注册Mapper接口

在启动类中添加@MapperScan注解,指定Mapper接口所在的包。

@SpringBootApplication
@MapperScan("com.example.mapper")
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

7、使用Mapper接口(编写Service)

编写Service层,在需要使用数据库操作的地方注入Mapper接口,并调用相应的方法。

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;

    public User getUserById(Long id) {
        return userMapper.getUserById(id);
    }

    public void insertUser(User user) {
        userMapper.insertUser(user);
    }

    public void updateUser(User user) {
        userMapper.updateUser(user);
    }

    public void deleteUser(Long id) {
        userMapper.deleteUser(id);
    }
}

8、编写Controller层

创建Controller类,处理HTTP请求,并调用对应的Service方法。

@RestController
public class UserController {
    @Autowired
    private UserService userService;

    // 处理GET请求,获取用户列表
    @GetMapping("/users")
    public List<User> getUsers() {
        return userService.getAllUsers();
    }

    // 处理POST请求,添加新用户
    @PostMapping("/users")
    public void addUser(@RequestBody User user) {
        userService.addUser(user);
    }

    // 处理PUT请求,更新用户信息
    @PutMapping("/users/{id}")
    public void updateUser(@PathVariable("id") Long id, @RequestBody User user) {
        user.setId(id);
        userService.updateUser(user);
    }

    // 处理DELETE请求,删除用户信息
    @DeleteMapping("/users/{id}")
    public void deleteUser(@PathVariable("id") Long id) {
        userService.deleteUserById(id);
    }
}

具体操作及详情请移步此链接https://blog.csdn.net/weixin_46666822/article/details/127968259?ops_request_misc=&request_id=&biz_id=102&utm_term=springboot%E6%95%B4%E5%90%88mybatis&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-127968259.142^v96^pc_search_result_base3&spm=1018.2226.3001.4187

三、整合MyBatis-plus

1.添加依赖

在 Maven 或 Gradle 中添加 MyBatis-Plus 和相关依赖。

<!-- MyBatis-Plus -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>最新版本</version>
    </dependency>

    <!-- 数据库驱动,根据实际使用的数据库选择 -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
    </dependency>
</dependencies>

2.配置数据源

application.propertiesapplication.yml 文件中配置数据库连接信息

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 123
    url: jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf8
mybatis-plus.global-config.db-config.table-prefix: tb_
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

3.创建实体类

创建与数据库表对应的实体类,并使用 MyBatis-Plus 的注解进行映射。

@Data
@TableName("user") // 表名映射
public class User {
    @TableId // 主键映射
    private Long id;
    private String name;
    private Integer age;
}

4.创建Mapper接口

创建接口继承 MyBatis-Plus 提供的 BaseMapper 接口,并定义自己的数据访问方法。

public interface UserMapper extends BaseMapper<User> {
    // 自定义查询方法
    List<User> findByName(String name);
}

5.使用注解

在 Service 层中使用 @Autowired 注解注入 Mapper 接口,并在需要的方法上使用 MyBatis-Plus 提供的注解进行数据库操作。

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    public List<User> findByName(String name) {
        return userMapper.findByName(name);
    }

    // 其他数据操作方法...
}

通过以上步骤,就完成了 Spring Boot 与 MyBatis-Plus 的整合。

具体操作详情点这https://blog.csdn.net/qq_45399396/article/details/130959510?ops_request_misc=&request_id=&biz_id=102&utm_term=Spring%20Boot%E6%95%B4%E5%90%88MyBatis-plus&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-130959510.142^v96^pc_search_result_base3&spm=1018.2226.3001.4187

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值