SpringBoot整合Mybatis框架

整合Mybatis框架

  1. 在pom.xml导入依赖
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>2.1.1</version>
    </dependency>
    
  2. 配置application文件,以连接数据库(/demo是连接的数据库的名称,可以根据实际情况替换)
    spring:
      datasource:
        username: xxx
        password: xxxx
        url: jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=UTF-8&serverTimeZone=UTC
        driver-class-name: com.mysql.cj.jdbc.Driver
    
  3. 实现一个实体类area,每一个属性都对应数据库表tb_area中的一列(可以根据自己本地数据库的实际情况替换)
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class area {
        private int areaId;
        private String areaName;
        private int priority;
        private Date createTime;
        private Date lastEditTime;
    
    }
    
  4. 新建一个mapper包,并新建一个AreaMapper的接口
    package com.example.demo.mapper;
    
    import com.example.demo.pojo.area;
    import org.apache.ibatis.annotations.Mapper;
    import org.springframework.stereotype.Repository;
    
    import java.util.List;
    
    @Mapper  // 这个注解表示这是一个mybatis的mapper类
    @Repository
    public interface AreaMapper {
    
        List<area> queryAreaList();
    
        area queryAreaById(int id);
    
    }
    
    注意这里要加上:
    1. @Mapper注解,表示该接口类的实现类对象交给mybatis底层创建,然后交由Spring框架管理。
    2. @Repository注解,@Repository注解和@Controller、@Service、@Component的作用差不多,都是把对象交给spring管理。@Repository用在持久层的接口上,这个注解是将接口的一个实现类交给spring管理。
  5. 在resources目录下面创建mybatis/mapper目录,用来存放具体的sql语句的实现
    <?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.AreaMapper">
        <select id="queryAreaList" resultType="area">
            select * from tb_area
        </select>
    
        <select id="queryAreaById" resultType="area">
            select * from tb_area where id=#{id}
        </select>
    
    </mapper>
    
    上面的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">
    
    是固定的,记住即可。
    注意namespace后面要绑定步骤四中的接口
  6. 继续配置application文件,将resources下的mapper与实体类绑定在一起
    mybatis:
      type-aliases-package: com.example.demo.pojo
      mapper-locations: classpath:mybatis/mapper/*.xml
    
  7. 最后实现controller层,将AreaMapper通过@Autowired注解注入
    @RestController
    public class AreaController {
    
        @Autowired
        private AreaMapper areaMapper;
    
        @GetMapping("/list")
        public List<area> queryAreaList(){
            return areaMapper.queryAreaList();
        }
    }
    
  8. 运行项目并访问http://localhost:8080/list就可以得到数据库中的内容

这里我们直接通过controller层调用dao层,但在实际项目中一般是controller层调用service层,service层调用dao层

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值