Heim  >  Artikel  >  Java  >  So integrieren Sie tkMapper in SpringBoot

So integrieren Sie tkMapper in SpringBoot

王林
王林nach vorne
2023-05-12 12:58:061245Durchsuche

SpringBoot integriert tkMapper

1 Erstellen eines SpringBoot-Projekts, auf das ich hier nicht eingehen werde Schauen wir uns zunächst die Struktur des Gesamtprojekts an Konflikte)

<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>
        <!--lombok省略代码-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <!-- h3嵌入式数据-->
        <dependency>
            <groupId>com.h3database</groupId>
            <artifactId>h3</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!-- tk-->
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>RELEASE</version>
        </dependency>
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper</artifactId>
            <version>3.4.5</version>
        </dependency>

    </dependencies>
#🎜 🎜#3

Erstellen Sie einen neuen Datenbankordner im Ressourcenverzeichnis, um Datendateien zu speichern, wobei schema-h3.sql das Datenbankschemaskript und data-h3 ist. sql ist das Datenskript 🎜#So integrieren Sie tkMapper in SpringBoot

DROP TABLE IF EXISTS user;

CREATE TABLE user
(
    id BIGINT(20) NOT NULL COMMENT &#39;主键ID&#39;,
    name VARCHAR(30) NULL DEFAULT NULL COMMENT &#39;姓名&#39;,
    age INT(11) NULL DEFAULT NULL COMMENT &#39;年龄&#39;,
    email VARCHAR(50) NULL DEFAULT NULL COMMENT &#39;邮箱&#39;,
    PRIMARY KEY (id)
);

4 #🎜 🎜#application.yml

DELETE FROM user;

INSERT INTO user (id, name, age, email) VALUES
(1, &#39;red&#39;, 18, &#39;test1@tian.com&#39;),
(2, &#39;yll&#39;, 20, &#39;test2@tian.com&#39;),
(3, &#39;putty&#39;, 22, &#39;test3@tian.com&#39;),
(4, &#39;ele&#39;, 24, &#39;test4@tian.com&#39;),
(5, &#39;tom&#39;, 26, &#39;test5@tian.com&#39;);
5

Erstellen Sie ein neues TK-Paket unter dem generierten Projektpfad und erstellen Sie es ein neues Bean-Paket (zum Speichern von Entitätsklassen) und ein Dao-Paket unter dem TK-Paket (Store Mapper-Schnittstellenklasse), ein Konfigurationspaket (Speicherkonfigurationsklasse)

tk-Paket zu Erstellen Sie eine neue allgemeine Mapper-Schnittstelle MyMapper.

Diese Schnittstelle kann nicht gescannt werden, andernfalls wird ein Fehler gemeldet 🎜#Erstellen Sie eine neue Benutzerklasse unter dem Bean-Paket, um den Code wegzulassen. Die @Data-Annotation enthält get /set und andere Methoden.

Benutzer. java

spring:
  datasource:
    driver-class-name: org.h3.Driver
    schema: classpath:db/schema-h3.sql
    data: classpath:db/data-h3.sql
    url: jdbc:h3:mem:root
    username: root
    password: root

Dao-Paket erstellt eine neue Geschäftsschnittstelle UserDao#🎜🎜 #

UserDao.java

# 🎜🎜#
package com.tian.tkmapper;

import org.springframework.stereotype.Repository;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;

@Repository
public interface MyMapper<T> extends Mapper<T> ,MySqlMapper<T> {
}

Neue Konfigurationsklasse MybatisConfigurer

#🎜 🎜#

MybatisConfigurer.java

package com.tian.tkmapper.tk.bean;

import lombok.Data;

@Data
public class User {
    private Long id;
    private String name;
    private Integer age;
    private String email;
}
# 🎜🎜#6 # 🎜🎜#Add @MapperScan

package com.tian.tkmapper.tk.dao;

import com.tian.tkmapper.MyMapper;
import com.tian.tkmapper.tk.bean.User;
import org.springframework.stereotype.Repository;

@Repository
public interface UserDao extends MyMapper<User> {
}
7 #🎜🎜 #Testen Sie den Code zum Testen

package com.tian.tkmapper.tk.config;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import tk.mybatis.spring.mapper.MapperScannerConfigurer;
import javax.annotation.Resource;
import javax.sql.DataSource;
import java.util.Properties;

@Configuration
public class MybatisConfigurer {
    @Resource
    private DataSource dataSource;

    @Bean
    public SqlSessionFactory sqlSessionFactoryBean() throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        bean.setTypeAliasesPackage("com.tian.tkmapper.tk.bean");

        //添加XML目录
//        ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
//        bean.setMapperLocations(resolver.getResources("classpath:mapper/*.xml"));
        return bean.getObject();
    }

    @Configuration
    @AutoConfigureAfter(MybatisConfigurer.class)
    public static class MyBatisMapperScannerConfigurer {

        @Bean
        public MapperScannerConfigurer mapperScannerConfigurer() {
            MapperScannerConfigurer mapperScannerConfigurer = new MapperScannerConfigurer();
            mapperScannerConfigurer.setSqlSessionFactoryBeanName("sqlSessionFactoryBean");
            mapperScannerConfigurer.setBasePackage("com.tian.tkmapper.tk.dao.*");
            //配置通用mappers
            Properties properties = new Properties();
            properties.setProperty("mappers", "com.tian.tkmapper.MyMapper");
            properties.setProperty("notEmpty", "false");
            properties.setProperty("IDENTITY", "MYSQL");
            mapperScannerConfigurer.setProperties(properties);
            return mapperScannerConfigurer;
        }
    }
   }

Endlich, wenn Sie die angezeigte Ausgabe sehen ist wie folgt, es ist erfolgreich

Das obige ist der detaillierte Inhalt vonSo integrieren Sie tkMapper in SpringBoot. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen