欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot集成tkmapper及基本使用教程

 更新時(shí)間:2022年11月10日 08:32:10   作者:likelong965  
tk.mybatis可以節(jié)省程序員的大部分時(shí)間,對(duì)于程序員來(lái)說(shuō)關(guān)于一張表的操作無(wú)非就是增刪改查,tk.mybatis提供了一些基本操作的SQL語(yǔ)句,比如說(shuō)按表的主鍵查詢(xún)、刪除等基本操作,我們接下來(lái)就來(lái)介紹一些springboot集成tkmapper及基本使用

一. 簡(jiǎn)介

tkMapper是?個(gè)MyBatis插件,是在MyBatis的基礎(chǔ)上提供了很多工具,讓開(kāi)發(fā)變得簡(jiǎn)單,提高開(kāi)發(fā)效率。

  • 提供了針對(duì)單表通用的數(shù)據(jù)庫(kù)操作方法
  • 逆向工程(根據(jù)數(shù)據(jù)表生成實(shí)體類(lèi)、mapper接口、映射文件)這里不做介紹

二、集成mybatis&tkmapper

2.1、所需依賴(lài)

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.0</version>
        </dependency>

        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.1.5</version>
        </dependency>

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

2.2、配置yml

spring:
  datasource:
      driverClassName: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
      username: root
      password: root

mybatis:
  mapper-locations: classpath:mappers/*Mapper.xml
  type-aliases-package: com.lkl.tkmapper.entity

mybatis主要配置mapper映射文件及實(shí)體類(lèi)別名包配置

image-20220806105312807

2.3、主啟動(dòng)類(lèi)上加注解掃描

image-20220806105600524

三、基本使用

3.1、創(chuàng)建BaseMapper接口

tkMapper已經(jīng)完成了對(duì)單表的通用操作的封裝,封裝在Mapper接口和MySqlMapper接口;因此如果我們要完
成對(duì)單表的操作,只需自定義Mapper接?繼承Mapper接口和MySqlMapper接口

創(chuàng)建基礎(chǔ)mapper接口繼承Mapper接口和MySqlMapper接口以供其他接口直接繼承

/**
 * tkmapper的公共接口 供其它接口繼承
 *
 * @author likelong
 * @date 2022/8/5
 */
public interface BaseMapper<T> extends Mapper<T>, MySqlMapper<T> {
}

3.2、entity實(shí)體層

先看數(shù)據(jù)庫(kù)表結(jié)構(gòu),數(shù)據(jù)庫(kù)user表

image-20220806110228542

對(duì)應(yīng)實(shí)體類(lèi),使用tkmybaist時(shí)要給實(shí)體類(lèi)注解,比如說(shuō)@Table就是表名【類(lèi)注解】,@Id就是主鍵,@Column就是列【屬性注解】。(符合命名規(guī)則則可以省去這些注解,如下實(shí)體類(lèi))

這里值得注意的是表的列名和類(lèi)的字段名的對(duì)比,比如說(shuō)我表的字段名是user_name,那么映射成類(lèi)的字段應(yīng)該是userName,符合駝峰命名法!

@Data
public class User {

    @Id
    private Integer id;

    private String userName;

    private String password;

    private String address;

    private String phone;

}

3.3、mapper持久層

創(chuàng)建接口直接繼承我們的BaseMapper接口即可

public interface UserMapper extends BaseMapper<User> {
}

3.4、service服務(wù)層

服務(wù)層接口

/**
 * @author likelong
 * @date 2022/8/6
 */
public interface UserService {

    User getById(int id);

    List<User> list();
}

服務(wù)層實(shí)現(xiàn)類(lèi),UserMapper接口此時(shí)就具備單表的基本增刪改查操作

/**
 * @author likelong
 * @date 2022/8/6
 */
@Service
public class UserServiceImpl implements UserService {

    @Autowired
    private UserMapper userMapper;

    @Override
    public User getById(int id) {
        return userMapper.selectByPrimaryKey(id);
    }

    @Override
    public List<User> list() {
        return userMapper.selectAll();
    }
}

四、測(cè)試

image-20220806112226254

userMapper具備單表的基本增刪改查操作(因?yàn)樗械慕涌诙祭^承自Mapper<T>, MySqlMapper<T>,這2個(gè)接口中封裝好了所有的單表操作,直接調(diào)用相關(guān)方法即可。),如下:

image-20220806112351084

五、注意:

此時(shí)的UserMapper僅具備單表的基本增刪改查操作,如若有多表關(guān)聯(lián)操作時(shí),也可以在mapper映射文件中直接編寫(xiě)相關(guān)的sql腳本即可(規(guī)則同mybatis一致)。

參考資料

springboot集成tkmapper及逆向工程

tkmapper基本使用

示例代碼地址

SpringBoot使用tkmapper

1.加載依賴(lài)

        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.1.5</version>
        </dependency>

2.引入逆向工程的插件

引入逆向工程插件的目的是為了省略繁瑣的創(chuàng)建各種實(shí)體類(lèi),映射文件和xml文件等步驟,這些文件在自己創(chuàng)建的過(guò)程中很有可能會(huì)出現(xiàn)不匹配的情況,所以逆向工程可以很方便完成這些工作。

            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.5</version>
                <configuration>
<!--插件配置文件所在的位置-->
              	<configurationFile>${basedir}/src/main/resources/generator/generatorConfig.xml</configurationFile>
                </configuration>
                <!--在插件中依然需要插入插件所需要的依賴(lài)-->
                <dependencies>
                    <dependency>
                        <groupId>mysql</groupId>
                        <artifactId>mysql-connector-java</artifactId>
                        <version>5.1.47</version>
                    </dependency>
                    <dependency>
                        <groupId>tk.mybatis</groupId>
                        <artifactId>mapper</artifactId>
                        <version>4.1.5</version>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>

3.插件配置文件

具體的設(shè)置和注解在下面的程序中都有說(shuō)明,并且相對(duì)的在文件中設(shè)置路徑的時(shí)候,可以對(duì)目標(biāo)包進(jìn)行復(fù)制路徑之后粘貼在目標(biāo)位。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <!-- 引入數(shù)據(jù)庫(kù)連接配置 -->
    <!--<properties resource="jdbc.properties" />-->
    <context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
        <property name="beginningDelimiter" value="`"/>
        <property name="endingDelimiter" value="`"/>
        <!--配置GeneralDAO -->
        <plugin type="tk.mybatis.mapper.generator.MapperPlugin">
            <property name="mappers" value="general.GeneralMapper"/>
        </plugin>
        <!-- 配置數(shù)據(jù)庫(kù)連接 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/mall?useSSL=false"
                        userId="root"
                        password="123456">
        </jdbcConnection>
        <!-- 配置實(shí)體類(lèi)存放路徑 -->
        <javaModelGenerator targetPackage="domain"
                            targetProject="src/main/java"/>
        <!-- 配置 XML 存放路徑 -->
        <sqlMapGenerator targetPackage="/" targetProject="src/main/resources/mapper"/>

        <!-- 配置 DAO 存放路徑 -->
        <javaClientGenerator targetPackage="mapper" targetProject="src/main/java" type="XMLMAPPER"/>

        <!--配置置需要指定生成的數(shù)據(jù)庫(kù)和表,%代表所有表-->
        <table tableName="%">
        </table>
    </context>
</generatorConfiguration>

強(qiáng)調(diào)強(qiáng)調(diào)強(qiáng)調(diào)
逆向工程生成了實(shí)體類(lèi)以及各個(gè)參數(shù)的set/get方法,但是沒(méi)有生成實(shí)體類(lèi)的構(gòu)造方法,一定要自己添加構(gòu)造方法?。?!

4.錯(cuò)誤

1.在tkmapper進(jìn)行逆向工程的時(shí)候顯示依賴(lài)找不到

自己的原因: 因?yàn)槭褂玫膍aven聚合工程,所以在父工程引入了打包插件,即下面的依賴(lài)

        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>

解決辦法: 將父工程的<build>標(biāo)簽中的內(nèi)容全部進(jìn)行刪除,之后將pom文件重新加載。
對(duì)于一個(gè)問(wèn)題也是同樣的解決方案: 在打包過(guò)程中顯示找不到main函數(shù)

2.提示如下的錯(cuò)誤

Mon Mar 08 15:03:09 CST 2021 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

根據(jù)提示中的錯(cuò)誤,則需要設(shè)置數(shù)據(jù)庫(kù)連接地址中的useSSL

"jdbc:mysql://localhost:3306/mall?useSSL=false"

3.修改上述的錯(cuò)誤之后,還是生成不了

自己的問(wèn)題: tkmapper的版本過(guò)高,所以將1.4.0的版本降至1.3.5之后,問(wèn)題解決。

到此這篇關(guān)于springboot集成tkmapper及基本使用的文章就介紹到這了,更多相關(guān)springboot集成tkmapper內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • android中判斷服務(wù)或者進(jìn)程是否存在實(shí)例

    android中判斷服務(wù)或者進(jìn)程是否存在實(shí)例

    本篇文章主要介紹了android中判斷服務(wù)或者進(jìn)程是否存在實(shí)例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • SpringBoot?MDC全局鏈路最新完美解決方案

    SpringBoot?MDC全局鏈路最新完美解決方案

    MDC 在 Spring Boot 中的作用是為日志事件提供上下文信息,并將其與特定的請(qǐng)求、線程或操作關(guān)聯(lián)起來(lái),通過(guò)使用 MDC,可以更好地理解和分析日志,并在多線程環(huán)境中確保日志的準(zhǔn)確性和一致性,這篇文章主要介紹了SpringBoot?MDC全局鏈路解決方案,需要的朋友可以參考下
    2023-08-08
  • SpringMVC實(shí)現(xiàn)參數(shù)校驗(yàn)配置方法

    SpringMVC實(shí)現(xiàn)參數(shù)校驗(yàn)配置方法

    這篇文章主要介紹了SpringMVC實(shí)現(xiàn)參數(shù)校驗(yàn)的配置方式,Spring MVC會(huì)拋出MethodArgumentNotValidException異常,并將錯(cuò)誤信息綁定到相應(yīng)的字段上,感興趣的朋友跟隨小編一起看看吧
    2024-03-03
  • java語(yǔ)言中封裝類(lèi)代碼示例

    java語(yǔ)言中封裝類(lèi)代碼示例

    這篇文章主要介紹了java語(yǔ)言中封裝類(lèi),涉及相關(guān)代碼示例及結(jié)果分析,以及封裝的好處簡(jiǎn)單介紹,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • Java中StringUtils工具類(lèi)進(jìn)行String為空的判斷解析

    Java中StringUtils工具類(lèi)進(jìn)行String為空的判斷解析

    這篇文章主要介紹了Java中StringUtils工具類(lèi)進(jìn)行String為空的判斷解析,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • SpringBoot整合Dubbo zookeeper過(guò)程解析

    SpringBoot整合Dubbo zookeeper過(guò)程解析

    這篇文章主要介紹了SpringBoot整合Dubbo zookeeper過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • Mysql存儲(chǔ)java對(duì)象實(shí)例詳解

    Mysql存儲(chǔ)java對(duì)象實(shí)例詳解

    這篇文章主要介紹了Mysql存儲(chǔ)java對(duì)象實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2016-11-11
  • SpringBoot2.0新特性之配置綁定全解析

    SpringBoot2.0新特性之配置綁定全解析

    在Spring Boot 2.0中推出了Relaxed Binding 2.0,對(duì)原有的屬性綁定功能做了非常多的改進(jìn)以幫助我們更容易的在Spring應(yīng)用中加載和讀取配置信息,感興趣的小伙伴們可以參考一下
    2019-03-03
  • java批量修改文件名的實(shí)現(xiàn)方法

    java批量修改文件名的實(shí)現(xiàn)方法

    這篇文章主要介紹了 java批量修改文件名的實(shí)現(xiàn)方法的相關(guān)資料,實(shí)現(xiàn)批量修改文件下的所有文件的文件名,具有一定的參考價(jià)值,需要的朋友可以參考下
    2017-07-07
  • 詳解Spring Boot Security工作流程

    詳解Spring Boot Security工作流程

    Spring Security,這是一種基于 Spring AOP 和 Servlet 。這篇文章主要介紹了Spring Boot Security的相關(guān)知識(shí),需要的朋友可以參考下
    2019-04-04

最新評(píng)論