­

SpringBoot集成MyBatis

  • 2019 年 10 月 7 日
  • 筆記

各位应该都了解SSH和SSM工程搭建时候需要各种配置代码,还要Tomcat配置,非常麻烦

现在好了,SpringBoot来解救大家了,它默认使用了各种常用的配置,而且内嵌了Tomcat(你没听错!就是内嵌了Tomcat,连Tomcat都不用配置了)。SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(application.yaml)进行配置

先来搭建一个SpringBoot工程吧!

点击启动,搞定!

下面我们来整合SpringBoot和MyBatis

工程结构

pom.xml

<?xml version="1.0" encoding="UTF-8"?>  <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"           xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">      <modelVersion>4.0.0</modelVersion>      <parent>          <groupId>org.springframework.boot</groupId>          <artifactId>spring-boot-starter-parent</artifactId>          <version>2.1.6.RELEASE</version>          <relativePath/> <!-- lookup parent from repository -->      </parent>      <groupId>com.jinkejoy</groupId>      <artifactId>springboot_mybatis</artifactId>      <version>0.0.1-SNAPSHOT</version>      <name>springboot_mybatis</name>      <description>Demo project for Spring Boot</description>        <properties>          <java.version>1.8</java.version>      </properties>        <dependencies>          <dependency>              <groupId>org.springframework.boot</groupId>              <artifactId>spring-boot-starter-web</artifactId>          </dependency>            <dependency>              <groupId>org.springframework.boot</groupId>              <artifactId>spring-boot-starter-test</artifactId>              <scope>test</scope>          </dependency>            <!--mybatis起步依赖-->          <dependency>              <groupId>org.mybatis.spring.boot</groupId>              <artifactId>mybatis-spring-boot-starter</artifactId>              <version>2.0.1</version>          </dependency>            <!--MySql连接驱动-->          <dependency>              <groupId>mysql</groupId>              <artifactId>mysql-connector-java</artifactId>          </dependency>      </dependencies>        <build>          <plugins>              <plugin>                  <groupId>org.springframework.boot</groupId>                  <artifactId>spring-boot-maven-plugin</artifactId>              </plugin>          </plugins>      </build>    </project>

application.properties

#数据库连接信息  spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver  spring.datasource.url=jdbc:mysql://127.0.0.1:3306/ssm?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8  spring.datasource.username=root  spring.datasource.password=1234  #配置mybatis的信息  #spring集成mybatis环境  #pojo别名扫描包  mybatis.type-aliases-package=com.jinkejoy.domain  #加载mybatis映射文件  mybatis.mapper-locations=classpath:mapper/*Mapper.xml

UserMapper.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">  <mapper namespace="com.jinkejoy.mapper.UserMapper">      <select id="queryUserList" resultType="user">          select * from user      </select>  </mapper>

java代码

package com.jinkejoy.controller;    import com.jinkejoy.domain.User;  import com.jinkejoy.mapper.UserMapper;  import org.springframework.beans.factory.annotation.Autowired;  import org.springframework.stereotype.Controller;  import org.springframework.web.bind.annotation.RequestMapping;  import org.springframework.web.bind.annotation.ResponseBody;    import java.util.List;    @Controller  public class MybatisController {        @Autowired      private UserMapper userMapper;        @RequestMapping("/query")      @ResponseBody      public List<User> queryUserList() {          List<User> users = userMapper.queryUserList();          return users;      }  }
package com.jinkejoy.domain;    public class User {      private Integer id;      private String username;      private String password;      private String name;        public Integer getId() {          return id;      }        public void setId(Integer id) {          this.id = id;      }        public String getUsername() {          return username;      }        public void setUsername(String username) {          this.username = username;      }        public String getPassword() {          return password;      }        public void setPassword(String password) {          this.password = password;      }        public String getName() {          return name;      }        public void setName(String name) {          this.name = name;      }        @Override      public String toString() {          return "User{" +                  "id=" + id +                  ", username='" + username + ''' +                  ", password='" + password + ''' +                  ", name='" + name + ''' +                  '}';      }  }
package com.jinkejoy.mapper;    import com.jinkejoy.domain.User;  import org.apache.ibatis.annotations.Mapper;    import java.util.List;    @Mapper  public interface UserMapper {      public List<User> queryUserList();  }
package com.jinkejoy;    import org.springframework.boot.SpringApplication;  import org.springframework.boot.autoconfigure.SpringBootApplication;    @SpringBootApplication  public class SpringbootMybatisApplication {        public static void main(String[] args) {          SpringApplication.run(SpringbootMybatisApplication.class, args);      }    }

然后直接跑出效果

集成Junit单元测试

package com.jinkejoy;    import com.jinkejoy.domain.User;  import com.jinkejoy.mapper.UserMapper;  import org.junit.Test;  import org.junit.runner.RunWith;  import org.springframework.beans.factory.annotation.Autowired;  import org.springframework.boot.test.context.SpringBootTest;  import org.springframework.test.context.junit4.SpringRunner;    import java.util.List;    @RunWith(SpringRunner.class)  @SpringBootTest(classes = SpringbootMybatisApplication.class)  public class MyBatisTest {        @Autowired      private UserMapper userMapper;        @Test      public void test() {          List<User> users = userMapper.queryUserList();          System.out.println(users);      }  }