2-Mybatis整合SpringBoot快速上手

Mybatis整合SpringBoot快速上手

有了Mybatis独立项目的经验,Mybatis整合Springboot会变得非常容易。

创建SpringBoot项目

![image.png](https://img-blog.csdnimg.cn/img_convert/1693103864267a04bee2e60737250777.png#align=left&display=inline&height=282&margin=[object Object]&name=image.png&originHeight=282&originWidth=363&size=11230&status=done&style=none&width=363)

Mybatis整合SpringBoot

SpringBoot整合Mybatis就更简单了,因为有一部分工作SpringBoot框架为我们完成了!

添加依赖

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.30</version>
</dependency>
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>1.18.14</version>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
  <groupId>org.mybatis.spring.boot</groupId>
  <artifactId>mybatis-spring-boot-starter</artifactId>
  <version>2.1.0</version>
</dependency>

核心配置

我们之前写单独项目的时候,是不是要写一个核心xml,就是这个xml让爷爷(SqlSessionFactoryBuilder)可以生出来爸爸(SqlSessionFactory),在SpringBoot中当然可以这样做,写一个xml,然后将这个xml告诉SpringBoot,不过想在我们有一个更简单的方式,通过springboot的配置文件和注解,我们告诉springboot mybatis的配置在哪里,这样就不用创建xml了

在springboot的application.yml中添加如下配置:

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/blog
    username: root
    password: AaA19980818
    driver-class-name: com.mysql.jdbc.Driver
mybatis:
  typeAliasesPackage: com.example.demo.entity
  mapperLocations: classpath:mapper/*.xml
server:
  port: 8081

在springboot的启动类添加如下注解:

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

yml文件中的mapperLocations告诉springboot所有的XXXMapper.xml文件在哪里,启动类的注解告诉SpringBoot所有的XXXDao接口在哪里,这样所有的接口和实现类都在Springboot的掌握之中。

接下来我们就不用生成爷爷(SqlSessionFactoryBuilder)、爸爸(SqlSessionFactory)和儿子(SqlSession)了,这些SpringBoot都为我们解决了。只需要写出User、UserDao和UserDao.xml就可以了

静态对应

User.java

@Data
public class User {
    private Long id;
    private String nickname;
    private String username;
    private String password;
    private String email;
    private String avatar;
    private Integer type;
    private Date create_time;
    private Date update_time;
}

动态接口

public interface UserDao {
    User getUserById(Long id);
}

实现类

<?xml version="1.0" encoding="UTF8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.dao.UserDao">
    <select id="getUserById" resultType="com.example.demo.entity.User" parameterType="Long">select * from blog.t_user where id =
        #{id}
    </select>
</mapper>

验证

最后我们编写一个controller验证一下吧!

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserDao userDao;

    @RequestMapping("/getUserById")
    public User getUserById(){
        return userDao.getUserById((long)1);
    }
}

快速上手工程目录结构

![image.png](https://img-blog.csdnimg.cn/img_convert/85d1194bb6ecbcc266c8b9c7d9657851.png#align=left&display=inline&height=322&margin=[object Object]&name=image.png&originHeight=322&originWidth=488&size=13966&status=done&style=none&width=488)

运行结果

![image.png](https://img-blog.csdnimg.cn/img_convert/b6ee0e0d021a5b0edebd01ab67c7c7ae.png#align=left&display=inline&height=91&margin=[object Object]&name=image.png&originHeight=91&originWidth=1842&size=24478&status=done&style=none&width=1842)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tinpo_123

感谢给小张填杯java~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值