我的编程空间,编程开发者的网络收藏夹
学习永远不晚

springboot集成tkmapper及基本使用教程

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

springboot集成tkmapper及基本使用教程

一. 简介

tkMapper是⼀个MyBatis插件,是在MyBatis的基础上提供了很多工具,让开发变得简单,提高开发效率。

  • 提供了针对单表通用的数据库操作方法
  • 逆向工程(根据数据表生成实体类、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
public interface BaseMapper<T> extends Mapper<T>, MySqlMapper<T> {
}

3.2、entity实体层

先看数据库表结构,数据库user表

image-20220806110228542

对应实体类,使用tkmybaist时要给实体类注解,比如说@Table就是表名【类注解】,@Id就是主键,@Column就是列【属性注解】。(符合命名规则则可以省去这些注解,如下实体类)

这里值得注意的是表的列名和类的字段名的对比,比如说我表的字段名是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持久层

创建接口直接继承我们的BaseMapper接口即可

public interface UserMapper extends BaseMapper<User> {
}

3.4、service服务层

服务层接口


public interface UserService {

    User getById(int id);

    List<User> list();
}

服务层实现类,UserMapper接口此时就具备单表的基本增删改查操作


@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个接口中封装好了所有的单表操作,直接调用相关方法即可。),如下:

image-20220806112351084

五、注意:

此时的UserMapper仅具备单表的基本增删改查操作,如若有多表关联操作时,也可以在mapper映射文件中直接编写相关的sql脚本即可(规则同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.引入逆向工程的插件

引入逆向工程插件的目的是为了省略繁琐的创建各种实体类,映射文件和xml文件等步骤,这些文件在自己创建的过程中很有可能会出现不匹配的情况,所以逆向工程可以很方便完成这些工作。

            <plugin>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-maven-plugin</artifactId>
                <version>1.3.5</version>
                <configuration>
<!--插件配置文件所在的位置-->
              	<configurationFile>${basedir}/class="lazy" data-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>
    <!-- 引入数据库连接配置 -->
    <!--<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>
        <!-- 配置数据库连接 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/mall?useSSL=false"
                        userId="root"
                        password="123456">
        </jdbcConnection>
        <!-- 配置实体类存放路径 -->
        <javaModelGenerator targetPackage="domain"
                            targetProject="class="lazy" data-src/main/java"/>
        <!-- 配置 XML 存放路径 -->
        <sqlMapGenerator targetPackage="/" targetProject="class="lazy" data-src/main/resources/mapper"/>

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

        <!--配置置需要指定生成的数据库和表,%代表所有表-->
        <table tableName="%">
        </table>
    </context>
</generatorConfiguration>

强调强调强调
逆向工程生成了实体类以及各个参数的set/get方法,但是没有生成实体类的构造方法,一定要自己添加构造方法!!!

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>标签中的内容全部进行删除,之后将pom文件重新加载。
对于一个问题也是同样的解决方案: 在打包过程中显示找不到main函数

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.

根据提示中的错误,则需要设置数据库连接地址中的useSSL

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

3.修改上述的错误之后,还是生成不了

自己的问题: tkmapper的版本过高,所以将1.4.0的版本降至1.3.5之后,问题解决。

到此这篇关于springboot集成tkmapper及基本使用的文章就介绍到这了,更多相关springboot集成tkmapper内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

springboot集成tkmapper及基本使用教程

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

springboot集成tkmapper及基本使用教程

tk.mybatis可以节省程序员的大部分时间,对于程序员来说关于一张表的操作无非就是增删改查,tk.mybatis提供了一些基本操作的SQL语句,比如说按表的主键查询、删除等基本操作,我们接下来就来介绍一些springboot集成tkmapper及基本使用
2022-11-13

JSON基本使用教程

JSON是一种轻量级(Light-Meight)、基于文本的(Text-Based)、可读的(Human-Readable)格式,这篇文章主要介绍了JSON基本使用教程,需要的朋友可以参考下
2023-02-03

Java集合Stream流操作的基本使用教程分享

流操作并不会影响原来的集合,可以简单认为,流操作是把集合中的一个元素逐个复制放到一个首尾相接的流动的水槽中。这篇文章整理了Stream流操作的基本使用,需要的可以参考一下
2023-02-21

uni-app的基本使用教程

uni-app​​​是一个使用​ ​Vue.js​​开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台,这篇文章主要介绍了uni-app的基本使用,需要的朋友可以参考下
2022-11-16

hansontable在vue中的基本使用教程

handsontable是目前在前端界最接近excel的插件,可以执行编辑,复制粘贴,插入删除行列,排序等复杂操作,这篇文章主要介绍了hansontable在vue中的基本使用,需要的朋友可以参考下
2022-11-13

Vue webpack的基本使用示例教程

这篇文章主要介绍了Vue webpack的基本使用,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2022-12-22

08CMS v3.4 版本采集系统使用教程

虽然现在坛子里人气不咋滴,有不少提问贴没有解决,但是这些都会过去,G大说再进行一轮开发之后就将进入市场推广了,也就意味着官方不编程客栈会再一味的闭门开发这个所谓的 “再一轮开发”或许就是指V3.5版本吧,GBK编码版
2022-06-12

如何使用EasyCode生成springboot+mybatis基础程序

这篇文章给大家分享的是有关如何使用EasyCode生成springboot+mybatis基础程序的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、前言此文将分享我个人使用的一个easycode生成方法,生成之后
2023-06-28

Python使用BeautifulSoup库解析HTML基本使用教程

BeautifulSoup是Python的一个第三方库,可用于帮助解析html/XML等内容,以抓取特定的网页信息。目前最新的是v4版本,这里主要总结一下我使用的v3版本解析html的一些常用方法。 准备 1.Beautiful Soup安
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录