SpringBoot整合Mybatis

18 篇文章 0 订阅
6 篇文章 0 订阅

在SpringBoot中整合mybatis相对于ssm整合来说简单许多。

一、环境配置

1、依赖包
1、springboot和mybatis的starter
2、mysql的jar包
3、durid数据库连接池

<dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.1</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.9</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>

2、yml配置文件
以下文件可能需要更改编码,这在编译器中操作

debug: true
spring:
  devtools:
    restart:
      enabled: true  #设置开启热部署
    thymeleaf:
      cache: false
  datasource:
    druid:
      type: com.alibaba.druid.pool.DruidDataSource
      driver-class-name: com.mysql.jdbc.Driver
      url: jdbc:mysql://localhost:3306/study?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC
      username: root
      password: 342425

      initial-size: 5
      min-idle: 5
      max-active: 20

      max-wait: 30000

      time-between-eviction-runs-millis: 60000

      min-evictable-idle-time-millis: 300000
      validation-query: select '1' from dual
      test-while-idle: true
      test-on-borrow: false
      test-on-return: false

      pool-prepared-statements: true
      max-open-prepared-statements: 20
      max-pool-prepared-statement-per-connection-size: 20

      filters: stat,wall

      aop-patterns: com.springboot.servie.*
#mybatis的设置,可以不使用
mybatis:
  mapper-locations: classpath:mapper/*.xml

二、测试用例

测试用例使用接口开发,并且使用注解代替了映射文件,将结果返回到前端网页。前端网页使用Thymeleaf呈现。

1、实体Bean
2、Mybatis映射接口
3、服务接口(本接口可以省去,直接使用上一个接口)
4、服务实现类
5、控制器
6、前端页面

1、实体类Actor
以下代码略去toString、get、set方法。

@Component
public class Actor {
    private Integer actor_id;
    private String first_name;
    private String last_name;
    private Date last_update;

    public Actor() {
    }

    public Actor(Integer actor_id, String first_name, String last_name, Date last_update) {
        this.actor_id = actor_id;
        this.first_name = first_name;
        this.last_name = last_name;
        this.last_update = last_update;
    }

2、映射接口
使用接口,并且接口使用注解获得映射,不使用映射xml文件。
@Mapper、@Select两个直接分别说明这是一个映射接口、以及对应的SQL语句。

@Mapper
@Repository
public interface ActorDao {
  @Select(" select * from actor where actor_id <#{x}")
   ArrayList<Actor> getActor(Integer actor_id);
}

3、服务接口
服务接口用来接收映射结果(本接口可以省去,直接使用上一个接口),为了降低耦合。

@Repository
public interface ActorDaoMapper {
   ArrayList<Actor> getActor(Integer actor_id);
}

4、服务实现类
实现了上面的接口,得到查询结果。

@Component
public class ActorDaoimpl implements ActorDaoMapper{
    @Autowired
    ActorDao actorDao;
    @Override
    public ArrayList<Actor> getActor(Integer actor_id) {
        return actorDao.getActor(actor_id);
    }
}

5、控制器
控制器将结果返回前端页面。

@Controller
@RequestMapping("/A")
public class ActorQuery {
    @Autowired
    ActorDaoimpl actorDaoimpl;
    @RequestMapping(value = "/actor")
    public String ActorService( Model model){
        List<Actor> actors=actorDaoimpl.getActor(9);
        model.addAttribute("actor",actors);
        System.out.println(actors);
        return "actors";
    }
}

6、前端页面
呈现查询结果,使用了Thymeleaf技术。

<table class="table" border="1px">
    <tr>
        <th>id</th>
        <th>name</th>
        <th>name</th>
        <th>date</th>
    </tr>
    <tr th:each="x:${actor}">
        <td th:text="${x.actor_id}"></td>
        <td th:text="${x.first_name}"></td>
        <td th:text="${x.last_name}"></td>
        <td th:text="${x.last_update}"></td>
    </tr>
</table>

页面如下
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值