spring boot2.1.1 集成tk mybatis

 

 

此文章內容來源  https://gitee.com/free/Mapper/wikis/1.3-spring-boot?sort_id=208198

環境:

  1. 開發IDE:idea
  2. spring boot:2.1.1 release
  3. tk.mybatis 4
  4. mysql 5
  5. druid 1.0.25
  • 使用spring boot 初始化項目

    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.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.zjchsoft.bi</groupId>
    <artifactId>tkmb</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <name>tkmb</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-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.10</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.0.25</version>
        </dependency>

        <!-- 通用 Mapper -->
        <!-- https://mvnrepository.com/artifact/tk.mybatis/mapper -->
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper</artifactId>
            <version>4.0.0</version>
        </dependency>


        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>4.2.1</version>
        </dependency>


        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.29</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/tk.mybatis/mapper-spring-boot-starter -->
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.1.2</version>
        </dependency>



    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>

            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.2</version>
                <configuration>
                    <configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
                    <overwrite>true</overwrite>
                    <verbose>true</verbose>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.29</version>
                    </dependency>
                    <dependency>
                        <groupId>tk.mybatis</groupId>
                        <artifactId>mapper</artifactId>
                        <version>4.0.0</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>

</project>
  • 配置mappers
     
    spring:
      datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        url: jdbc:mysql://localhost:3306/test
        username: root
        password:
        driver-class-name: com.mysql.jdbc.Driver
    mapper:
      mappers:
        - tk.mybatis.mapper.common.Mapper
        - tk.mybatis.mapper.common.Mapper2
      not-empty: true
    # 自定義xml文件時引入,否則可以不引入
    mybatis:
      mapperLocations: classpath:mapper/*.xml

     
  • 配置掃描包路徑
package com.zjchsoft.bi.tkmb;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@tk.mybatis.spring.annotation.MapperScan(basePackages = "com.zjchsoft.bi.tkmb.mapper")
public class TkmbApplication {

    public static void main(String[] args) {
        SpringApplication.run(TkmbApplication.class, args);
    }

}

  •  添加自定義查詢
     
    <?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.zjchsoft.bi.tkmb.mapper.UserMapper" >
      <resultMap id="BaseResultMap" type="com.zjchsoft.bi.tkmb.entity.User" >
        <!--
          WARNING - @mbggenerated
          This element is automatically generated by MyBatis Generator, do not modify.
          This element was generated on Wed Dec 19 21:57:41 CST 2018.
        -->
        <id column="id" property="id" jdbcType="INTEGER" />
        <result column="user_name" property="userName" jdbcType="VARCHAR" />
        <result column="password" property="password" jdbcType="VARCHAR" />
        <result column="sex" property="sex" jdbcType="VARCHAR" />
      </resultMap>
      <sql id="Base_Column_List" >
            id, user_name, password, sex
        </sql>
      <select id="selectById2" parameterType="int" resultMap="BaseResultMap">
        select
        <include refid="Base_Column_List"></include>
        from t_user
        where id = #{id}
      </select>
    </mapper>

     

package com.zjchsoft.bi.tkmb.mapper;

import com.zjchsoft.bi.tkmb.entity.User;
import tk.mybatis.mapper.common.Mapper;
//不用添加註解,starter會自動掃描繼承Mapper的類文件
public interface UserMapper extends Mapper<User> {
    //自定義查詢
    public User selectById2(int id);
}

 

使用控制層進行訪問
 

package com.zjchsoft.bi.tkmb.controller;

import com.zjchsoft.bi.tkmb.entity.User;
import com.zjchsoft.bi.tkmb.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

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

    @Autowired
    UserMapper userMapper;

    @GetMapping("/all")
    public List<User> getUser(){
        return userMapper.selectAll();
    }

    @GetMapping("/get/{id}")
    public User getUser(@PathVariable("id") int id){
        return userMapper.selectById2(id);
    }
}
  • 啓動項目進行訪問



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章