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

springboot集成tkmapper及基本使用教程

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

一. 簡介

tkMapper是?個MyBatis插件,是在MyBatis的基礎上提供了很多工具,讓開發(fā)變得簡單,提高開發(fā)效率。

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

二、集成mybatis&tkmapper

2.1、所需依賴

        <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映射文件及實體類別名包配置

image-20220806105312807

2.3、主啟動類上加注解掃描

image-20220806105600524

三、基本使用

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

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

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

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

3.2、entity實體層

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

image-20220806110228542

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

這里值得注意的是表的列名和類的字段名的對比,比如說我表的字段名是user_name,那么映射成類的字段應該是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服務層

服務層接口

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

    User getById(int id);

    List<User> list();
}

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

/**
 * @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();
    }
}

四、測試

image-20220806112226254

userMapper具備單表的基本增刪改查操作(因為所有的接口都繼承自Mapper<T>, MySqlMapper<T>,這2個接口中封裝好了所有的單表操作,直接調(diào)用相關方法即可。),如下:

image-20220806112351084

五、注意:

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

參考資料

springboot集成tkmapper及逆向工程

tkmapper基本使用

示例代碼地址

SpringBoot使用tkmapper

1.加載依賴

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

2.引入逆向工程的插件

引入逆向工程插件的目的是為了省略繁瑣的創(chuàng)建各種實體類,映射文件和xml文件等步驟,這些文件在自己創(chuàng)建的過程中很有可能會出現(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>
                <!--在插件中依然需要插入插件所需要的依賴-->
                <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.插件配置文件

具體的設置和注解在下面的程序中都有說明,并且相對的在文件中設置路徑的時候,可以對目標包進行復制路徑之后粘貼在目標位。

<?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ù)庫連接配置 -->
    <!--<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ù)庫連接 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/mall?useSSL=false"
                        userId="root"
                        password="123456">
        </jdbcConnection>
        <!-- 配置實體類存放路徑 -->
        <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ù)庫和表,%代表所有表-->
        <table tableName="%">
        </table>
    </context>
</generatorConfiguration>

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

4.錯誤

1.在tkmapper進行逆向工程的時候顯示依賴找不到

自己的原因: 因為使用的maven聚合工程,所以在父工程引入了打包插件,即下面的依賴

        <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>標簽中的內(nèi)容全部進行刪除,之后將pom文件重新加載。
對于一個問題也是同樣的解決方案: 在打包過程中顯示找不到main函數(shù)

2.提示如下的錯誤

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ù)提示中的錯誤,則需要設置數(shù)據(jù)庫連接地址中的useSSL

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

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

自己的問題: tkmapper的版本過高,所以將1.4.0的版本降至1.3.5之后,問題解決。

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

相關文章

  • android中判斷服務或者進程是否存在實例

    android中判斷服務或者進程是否存在實例

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

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

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

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

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

    java語言中封裝類代碼示例

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

    Java中StringUtils工具類進行String為空的判斷解析

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

    SpringBoot整合Dubbo zookeeper過程解析

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

    Mysql存儲java對象實例詳解

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

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

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

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

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

    詳解Spring Boot Security工作流程

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

最新評論